Lines Matching refs:d
191 #define SERDMA_NEXTBUF(d,f) (((d)->f+1) % (d)->ringsz) argument
723 serdma_t *d = &s->dma_dac; in serdma_reg_access() local
744 if (d->hwptr != d->swptr) { in serdma_reg_access()
746 d->hwptr, d->swptr); in serdma_reg_access()
750 swptr = d->swptr; in serdma_reg_access()
751 d->hwptr = d->swptr = (d->swptr + 1) % d->ringsz; in serdma_reg_access()
754 descr = &d->descrtab[swptr]; in serdma_reg_access()
755 data_p = &d->dma_buf[swptr * 4]; in serdma_reg_access()
760 data_p, swptr, d->hwptr)); in serdma_reg_access()
926 serdma_t *d; in cs4297a_update_ptr() local
933 d = &s->dma_adc; in cs4297a_update_ptr()
935 d->descrtab_phys) / sizeof(serdma_descr_t)); in cs4297a_update_ptr()
940 d->swptr, d->hwptr, hwptr, intflag)); in cs4297a_update_ptr()
942 diff2 = diff = (d->ringsz + hwptr - d->hwptr) % d->ringsz; in cs4297a_update_ptr()
943 d->hwptr = hwptr; in cs4297a_update_ptr()
945 s_ptr = (u32 *)&(d->dma_buf[d->swptr*4]); in cs4297a_update_ptr()
946 descr = &d->descrtab[d->swptr]; in cs4297a_update_ptr()
967 wake_up(&d->reg_wait); in cs4297a_update_ptr()
969 if (d->count && (d->sb_hwptr == d->sb_swptr)) { in cs4297a_update_ptr()
978 *d->sb_hwptr++ = cpu_to_be16(left); in cs4297a_update_ptr()
979 *d->sb_hwptr++ = cpu_to_be16(right); in cs4297a_update_ptr()
980 if (d->sb_hwptr == d->sb_end) in cs4297a_update_ptr()
981 d->sb_hwptr = d->sample_buf; in cs4297a_update_ptr()
983 if (descr == d->descrtab_end) { in cs4297a_update_ptr()
984 descr = d->descrtab; in cs4297a_update_ptr()
990 d->total_bytes += good_diff * FRAME_SAMPLE_BYTES; in cs4297a_update_ptr()
991 d->count += good_diff * FRAME_SAMPLE_BYTES; in cs4297a_update_ptr()
992 if (d->count > d->sbufsz) { in cs4297a_update_ptr()
995 d->swptr = (d->swptr + diff) % d->ringsz; in cs4297a_update_ptr()
997 if (d->mapped) { in cs4297a_update_ptr()
998 if (d->count >= (signed) d->fragsize) in cs4297a_update_ptr()
999 wake_up(&d->wait); in cs4297a_update_ptr()
1001 if (d->count > 0) { in cs4297a_update_ptr()
1004 … "cs4297a: update count -> %d\n", d->count)); in cs4297a_update_ptr()
1005 wake_up(&d->wait); in cs4297a_update_ptr()
1012 diff2 = diff = (hwptr + d->ringsz - d->hwptr) % d->ringsz; in cs4297a_update_ptr()
1017 descr = &d->descrtab[d->swptr]; in cs4297a_update_ptr()
1018 data_p = &d->dma_buf[d->swptr*4]; in cs4297a_update_ptr()
1026 … printk(KERN_ERR "cs4297a: RX Bad address %d (%llx %lx)\n", d->swptr, in cs4297a_update_ptr()
1040 wake_up(&d->reg_wait); in cs4297a_update_ptr()
1045 d->swptr++; in cs4297a_update_ptr()
1047 if (descr == d->descrtab_end) { in cs4297a_update_ptr()
1048 descr = d->descrtab; in cs4297a_update_ptr()
1049 d->swptr = 0; in cs4297a_update_ptr()
1050 data_p = d->dma_buf; in cs4297a_update_ptr()
1054 d->hwptr = hwptr; in cs4297a_update_ptr()
1057 printk(KERN_INFO "cs4297a: hw/sw %x/%x\n", d->hwptr, d->swptr)); in cs4297a_update_ptr()
1062 (unsigned)s, d->hwptr, in cs4297a_update_ptr()
1063 d->total_bytes, d->count)); in cs4297a_update_ptr()
1076 serdma_t *d = &s->dma_dac; in cs4297a_update_ptr() local
1078 d->descrtab_phys) / sizeof(serdma_descr_t)); in cs4297a_update_ptr()
1079 diff = (d->ringsz + hwptr - d->hwptr) % d->ringsz; in cs4297a_update_ptr()
1082 d->hwptr, hwptr, d->swptr, diff, d->count)); in cs4297a_update_ptr()
1083 d->hwptr = hwptr; in cs4297a_update_ptr()
1085 d->total_bytes += diff * FRAME_SAMPLE_BYTES; in cs4297a_update_ptr()
1086 if (d->mapped) { in cs4297a_update_ptr()
1087 d->count += diff * FRAME_SAMPLE_BYTES; in cs4297a_update_ptr()
1088 if (d->count >= d->fragsize) { in cs4297a_update_ptr()
1089 d->wakeup = 1; in cs4297a_update_ptr()
1090 wake_up(&d->wait); in cs4297a_update_ptr()
1091 if (d->count > d->sbufsz) in cs4297a_update_ptr()
1092 d->count &= d->sbufsz - 1; in cs4297a_update_ptr()
1095 d->count -= diff * FRAME_SAMPLE_BYTES; in cs4297a_update_ptr()
1096 if (d->count <= 0) { in cs4297a_update_ptr()
1105 (unsigned)d->dma_buf, in cs4297a_update_ptr()
1106 d->ringsz)); in cs4297a_update_ptr()
1107 memset(d->dma_buf, 0, d->ringsz * FRAME_BYTES); in cs4297a_update_ptr()
1108 if (d->count < 0) { in cs4297a_update_ptr()
1109 d->underrun = 1; in cs4297a_update_ptr()
1111 d->count = 0; in cs4297a_update_ptr()
1115 } else if (d->count <= in cs4297a_update_ptr()
1116 (signed) d->fragsize in cs4297a_update_ptr()
1117 && !d->endcleared) { in cs4297a_update_ptr()
1119 clear_advance(d->dma_buf, in cs4297a_update_ptr()
1120 d->sbufsz, in cs4297a_update_ptr()
1121 d->swptr, in cs4297a_update_ptr()
1122 d->fragsize, in cs4297a_update_ptr()
1124 d->endcleared = 1; in cs4297a_update_ptr()
1126 if ( (d->count <= (signed) d->sbufsz/2) || intflag) in cs4297a_update_ptr()
1130 "cs4297a: update count -> %d\n", d->count)); in cs4297a_update_ptr()
1131 wake_up(&d->wait); in cs4297a_update_ptr()
1136 (unsigned) s, d->hwptr, in cs4297a_update_ptr()
1137 d->total_bytes, d->count)); in cs4297a_update_ptr()
1787 serdma_t *d = &s->dma_dac; in cs4297a_write() local
1796 if (d->count < 0) { in cs4297a_write()
1797 d->count = 0; in cs4297a_write()
1798 d->swptr = d->hwptr; in cs4297a_write()
1800 if (d->underrun) { in cs4297a_write()
1801 d->underrun = 0; in cs4297a_write()
1803 d->descrtab_phys) / sizeof(serdma_descr_t)); in cs4297a_write()
1804 d->swptr = d->hwptr = hwptr; in cs4297a_write()
1806 swptr = d->swptr; in cs4297a_write()
1807 cnt = d->sbufsz - (swptr * FRAME_SAMPLE_BYTES); in cs4297a_write()
1809 if (d->count + cnt > d->sbufsz) in cs4297a_write()
1810 cnt = d->sbufsz - d->count; in cs4297a_write()
1818 interruptible_sleep_on(&d->wait); in cs4297a_write()
1823 if (copy_from_user(d->sample_buf, buffer, cnt)) in cs4297a_write()
1827 s_tmpl = (u32 *)d->sample_buf; in cs4297a_write()
1828 t_tmpl = (u32 *)(d->dma_buf + (swptr * 4)); in cs4297a_write()
1854 *(u64 *)(d->dma_buf + (swptr * 4)) |= in cs4297a_write()
1864 swptr = (swptr + (cnt/FRAME_SAMPLE_BYTES)) % d->ringsz; in cs4297a_write()
1867 d->swptr = swptr; in cs4297a_write()
1868 d->count += cnt; in cs4297a_write()
1869 d->endcleared = 0; in cs4297a_write()