Hallo,

ich habe eine Frage zum Parameter size in dma_alloc_coherent. Muss diesem die Größe des benötigten Speichers übergeben werden oder die Anzahl der Pages die dieser Speichergröße entsprechen ?

In einem Codebeispiel aus Essential Linux Device Drivers wird die benötigte größe in Bytes der Funktion pci_alloc_consistent übergeben. In einem anderen Treiber, den ich hier vor mir habe, wird als size folgendes übergeben
uint dma_sglen = (width * height * 3) / PAGE_SIZE;
uint desc_size = (dma_sglen +1) * sizeof(struct pxa_dma_desc);
dma_alloc_coherent(NULL, desc_size, dmahandle, GFP_KERNEL);

Was ist denn nun zu übergeben ? Die Anzahl der Pages oder die Größe in Bytes ?
Die Doku zu dma_alloc_coherent ist ja nicht wirklich aufschlussreich.

Grüße,
cmos