DMA transfer is not working if highmem is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I have a problem with our VME driver (sources see below) and high 
memory. I would like to transfer the content of a user space alloced 
buffer to another VME device using DMA (see vme4l-core.c->vme4l_zc_dma()). 
The actual driver version uses page_address() and virt_to_bus() to get 
the bus addresses needed to fill the DMA scatter list. Unfortunately 
this is not working with highmem.

I tried with page_to_phys() instead of page_address/virt_to_bus which 
seems to work. But is this correct for all architectures? As far as I
understood I have to use the bus addresses and not the physical 
addresses to fill the DMA scatter list.

Maybe someone knows an example where I can have a look at, or any other 
suggestions?

Thank you,

Ralf


Sources:
--------
http://codeviewer.org/view/code:12ed  vme4l-core.c
http://codeviewer.org/view/code:12ee  vme4l-tsi148.c
http://codeviewer.org/view/code:12ef  vme4l-tsi148.h
http://codeviewer.org/view/code:12f0  vme4l-menpldz002.c
http://codeviewer.org/view/code:12f1  vme4l-core.h
or (complete):
http://www.men.de/download/free/13z014-90/13z014-90_02_11.zip 

Best Regards/Mit freundlichen Gruessen

Ralf Trübenbach

------------------------------------------------------------------------

Ralf Trübenbach, Software Design
MEN Mikro Elektronik GmbH
Neuwieder Straße 5-7
90411 Nürnberg, Germany
Phone +49-911-99 33 5-0
Fax +49-911-99 33 5-910
Ralf.Truebenbach@xxxxxx
www.men.de



MEN Mikro Elektronik GmbH - Manfred Schmitz (CTO), Udo Fuchs (CFO) 
- Handelsregister/Trade Register AG Nürnberg HRB 5540



--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux