lkml.org 
[lkml]   [2002]   [Feb]   [13]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 13 Feb 2002 13:40:59 +0100
FromMartin Dalecki <>
SubjectRe: PATCH 2.5.4 i810_audio, bttv, working at all.
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