• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/sound/pci/trident/

Lines Matching refs:trident

33 #include <sound/trident.h>
38 #define __set_tlb_bus(trident,page,ptr,addr) \
39 do { (trident)->tlb.entries[page] = cpu_to_le32((addr) & ~(SNDRV_TRIDENT_PAGE_SIZE-1)); \
40 (trident)->tlb.shadow_entries[page] = (ptr); } while (0)
41 #define __tlb_to_ptr(trident,page) \
42 (void*)((trident)->tlb.shadow_entries[page])
43 #define __tlb_to_addr(trident,page) \
44 (dma_addr_t)le32_to_cpu((trident->tlb.entries[page]) & ~(SNDRV_TRIDENT_PAGE_SIZE - 1))
51 #define set_tlb_bus(trident,page,ptr,addr) __set_tlb_bus(trident,page,ptr,addr)
53 #define set_silent_tlb(trident,page) __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr)
59 #define page_to_ptr(trident,page) __tlb_to_ptr(trident, page)
61 #define page_to_addr(trident,page) __tlb_to_addr(trident, page)
69 #define page_to_ptr(trident,page) __tlb_to_ptr(trident, (page) << 1)
70 #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) << 1)
73 static inline void set_tlb_bus(struct snd_trident *trident, int page,
77 __set_tlb_bus(trident, page, ptr, addr);
78 __set_tlb_bus(trident, page+1, ptr + SNDRV_TRIDENT_PAGE_SIZE, addr + SNDRV_TRIDENT_PAGE_SIZE);
80 static inline void set_silent_tlb(struct snd_trident *trident, int page)
83 __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr);
84 __set_tlb_bus(trident, page+1, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr);
99 #define page_to_ptr(trident,page) __tlb_to_ptr(trident, (page) * UNIT_PAGES)
100 #define page_to_addr(trident,page) __tlb_to_addr(trident, (page) * UNIT_PAGES)
103 static inline void set_tlb_bus(struct snd_trident *trident, int page,
109 __set_tlb_bus(trident, page, ptr, addr);
114 static inline void set_silent_tlb(struct snd_trident *trident, int page)
119 __set_tlb_bus(trident, page, (unsigned long)trident->tlb.silent_page.area, trident->tlb.silent_page.addr);
125 static inline void *offset_ptr(struct snd_trident *trident, int offset)
128 ptr = page_to_ptr(trident, get_aligned_page(offset));
191 snd_trident_alloc_sg_pages(struct snd_trident *trident,
201 hdr = trident->tlb.memhdr;
213 snd_printk(KERN_ERR "page calculation doesn't match: allocated pages = %d, trident = %d/%d\n", sgbuf->pages, firstpg(blk), lastpg(blk));
229 set_tlb_bus(trident, page, ptr, addr);
239 snd_trident_alloc_cont_pages(struct snd_trident *trident,
250 hdr = trident->tlb.memhdr;
270 set_tlb_bus(trident, page, ptr, addr);
280 snd_trident_alloc_pages(struct snd_trident *trident,
283 snd_assert(trident != NULL, return NULL);
286 return snd_trident_alloc_sg_pages(trident, substream);
288 return snd_trident_alloc_cont_pages(trident, substream);
295 int snd_trident_free_pages(struct snd_trident *trident,
301 snd_assert(trident != NULL, return -EINVAL);
304 hdr = trident->tlb.memhdr;
308 set_silent_tlb(trident, page);
374 static void clear_tlb(struct snd_trident *trident, int page)
376 void *ptr = page_to_ptr(trident, page);
377 dma_addr_t addr = page_to_addr(trident, page);
378 set_silent_tlb(trident, page);
382 dmab.dev.dev = snd_dma_pci_data(trident->pci);
453 static int synth_free_pages(struct snd_trident *trident, struct snd_util_memblk *blk)
457 get_single_page_range(trident->tlb.memhdr, blk, &first_page, &last_page);
459 clear_tlb(trident, page);
467 int snd_trident_synth_copy_from_user(struct snd_trident *trident,
482 if (copy_from_user(offset_ptr(trident, offset), data, temp))