Loading sound/usb/usx2y/usX2Yhwdep.c +10 −13 Original line number Diff line number Diff line Loading @@ -34,34 +34,31 @@ int usX2Y_hwdep_pcm_new(struct snd_card *card); static struct page * snd_us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type) static int snd_us428ctls_vm_fault(struct vm_area_struct *area, struct vm_fault *vmf) { unsigned long offset; struct page * page; void *vaddr; snd_printdd("ENTER, start %lXh, ofs %lXh, pgoff %ld, addr %lXh\n", snd_printdd("ENTER, start %lXh, pgoff %ld\n", area->vm_start, address - area->vm_start, (address - area->vm_start) >> PAGE_SHIFT, address); vmf->pgoff); offset = area->vm_pgoff << PAGE_SHIFT; offset += address - area->vm_start; snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS); offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); snd_printdd( "vaddr=%p made us428ctls_vm_nopage() return %p; offset=%lX\n", vaddr, page, offset); vmf->page = page; if (type) *type = VM_FAULT_MINOR; snd_printdd("vaddr=%p made us428ctls_vm_fault() page %p\n", vaddr, page); return page; return 0; } static struct vm_operations_struct us428ctls_vm_ops = { .nopage = snd_us428ctls_vm_nopage, .fault = snd_us428ctls_vm_fault, }; static int snd_us428ctls_mmap(struct snd_hwdep * hw, struct file *filp, struct vm_area_struct *area) Loading sound/usb/usx2y/usx2yhwdeppcm.c +7 −13 Original line number Diff line number Diff line Loading @@ -683,30 +683,24 @@ static void snd_usX2Y_hwdep_pcm_vm_close(struct vm_area_struct *area) } static struct page * snd_usX2Y_hwdep_pcm_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type) static int snd_usX2Y_hwdep_pcm_vm_fault(struct vm_area_struct *area, struct vm_fault *vmf) { unsigned long offset; struct page *page; void *vaddr; offset = area->vm_pgoff << PAGE_SHIFT; offset += address - area->vm_start; snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM); offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->hwdep_pcm_shm + offset; page = virt_to_page(vaddr); get_page(page); if (type) *type = VM_FAULT_MINOR; return page; vmf->page = virt_to_page(vaddr); get_page(vmf->page); return 0; } static struct vm_operations_struct snd_usX2Y_hwdep_pcm_vm_ops = { .open = snd_usX2Y_hwdep_pcm_vm_open, .close = snd_usX2Y_hwdep_pcm_vm_close, .nopage = snd_usX2Y_hwdep_pcm_vm_nopage, .fault = snd_usX2Y_hwdep_pcm_vm_fault, }; Loading Loading
sound/usb/usx2y/usX2Yhwdep.c +10 −13 Original line number Diff line number Diff line Loading @@ -34,34 +34,31 @@ int usX2Y_hwdep_pcm_new(struct snd_card *card); static struct page * snd_us428ctls_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type) static int snd_us428ctls_vm_fault(struct vm_area_struct *area, struct vm_fault *vmf) { unsigned long offset; struct page * page; void *vaddr; snd_printdd("ENTER, start %lXh, ofs %lXh, pgoff %ld, addr %lXh\n", snd_printdd("ENTER, start %lXh, pgoff %ld\n", area->vm_start, address - area->vm_start, (address - area->vm_start) >> PAGE_SHIFT, address); vmf->pgoff); offset = area->vm_pgoff << PAGE_SHIFT; offset += address - area->vm_start; snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_SIGBUS); offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); snd_printdd( "vaddr=%p made us428ctls_vm_nopage() return %p; offset=%lX\n", vaddr, page, offset); vmf->page = page; if (type) *type = VM_FAULT_MINOR; snd_printdd("vaddr=%p made us428ctls_vm_fault() page %p\n", vaddr, page); return page; return 0; } static struct vm_operations_struct us428ctls_vm_ops = { .nopage = snd_us428ctls_vm_nopage, .fault = snd_us428ctls_vm_fault, }; static int snd_us428ctls_mmap(struct snd_hwdep * hw, struct file *filp, struct vm_area_struct *area) Loading
sound/usb/usx2y/usx2yhwdeppcm.c +7 −13 Original line number Diff line number Diff line Loading @@ -683,30 +683,24 @@ static void snd_usX2Y_hwdep_pcm_vm_close(struct vm_area_struct *area) } static struct page * snd_usX2Y_hwdep_pcm_vm_nopage(struct vm_area_struct *area, unsigned long address, int *type) static int snd_usX2Y_hwdep_pcm_vm_fault(struct vm_area_struct *area, struct vm_fault *vmf) { unsigned long offset; struct page *page; void *vaddr; offset = area->vm_pgoff << PAGE_SHIFT; offset += address - area->vm_start; snd_assert((offset % PAGE_SIZE) == 0, return NOPAGE_OOM); offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char*)((struct usX2Ydev *)area->vm_private_data)->hwdep_pcm_shm + offset; page = virt_to_page(vaddr); get_page(page); if (type) *type = VM_FAULT_MINOR; return page; vmf->page = virt_to_page(vaddr); get_page(vmf->page); return 0; } static struct vm_operations_struct snd_usX2Y_hwdep_pcm_vm_ops = { .open = snd_usX2Y_hwdep_pcm_vm_open, .close = snd_usX2Y_hwdep_pcm_vm_close, .nopage = snd_usX2Y_hwdep_pcm_vm_nopage, .fault = snd_usX2Y_hwdep_pcm_vm_fault, }; Loading