![]() | |||||||||||||
Messages in this thread |
Jeff Garzik wrote: >Martin Dalecki wrote: >sg->busaddr=virt_to_bus(dmabuf->rawbuf+dmabuf->fragsize*i); > >>+ sg->busaddr=virt_to_phys(dmabuf->rawbuf+dmabuf->fragsize*i); >> // the card will always be doing 16bit stereo >> sg->control=dmabuf->fragsamples; >> if(state->card->pci_id == PCI_DEVICE_ID_SI_7012) >>@@ -954,7 +954,7 @@ >> } >> spin_lock_irqsave(&state->card->lock, flags); >> outb(2, state->card->iobase+c->port+OFF_CR); /* reset DMA machine */ >>- outl(virt_to_bus(&c->sg[0]), state->card->iobase+c->port+OFF_BDBAR); >>+ outl(virt_to_phys(&c->sg[0]), state->card->iobase+c->port+OFF_BDBAR); >> > > >These changes are wrong. The addresses desired need to be obtained from >the pci_alloc_consistent return values. > >> outb(2, state->card->iobase+c->port+OFF_CR); /* reset DMA machine */ >>- outl(virt_to_bus(&c->sg[0]), state->card->iobase+c->port+OFF_BDBAR); >>+ outl(virt_to_phys(&c->sg[0]), state->card->iobase+c->port+OFF_BDBAR); >> > >likewise > >>- ret = virt_to_bus((void *)kva); >>+ ret = virt_to_phys((void *)kva); >> >> va = VMALLOC_VMADDR(adr); >> kva = uvirt_to_kva(pgd_offset_k(va), va); >>- ret = virt_to_bus((void *)kva); >>+ ret = virt_to_phys((void *)kva); >> >>- btv->nr,virt_to_bus(po), virt_to_bus(pe)); >>+ btv->nr,virt_to_phys(po), virt_to_phys(pe)); >> > >...likewise, etc. > >This works on silly x86 but is not portable at all... definitely not >for application. > The bttv we can argue about, I was just tagging it as beeing a quick fix... Of course I admit that I have taken the easy shoot here. But it wasn't possible to me to deduce the proper thing to do by looking at the patches. This is the usual way I deal with API changes: Have a look at what has been done to the other candidates and do the analogous thing where you need it. But please just show me a non x86 architecture which is using the i810_audio driver! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 12:24 [from the cache] ©2003-2008 | |||||||||||||