Re: [PATCH 3/3] alpha, drm: Add Alpha support to Radeon DRM code
From: Jay Estabrook <hidden>
Date: 2011-06-15 02:38:18
Also in:
dri-devel, lkml
Hi, Dave,
It is the explanation that is inaccurate; I was still thinking about mmap when
the new paradigm is to do the mapping when the VM faults.
I believe the code that requires this patch is: ttm/ttm_bo_vm.c: ttm_bo_vm_fault(),
specifically:
for (i = 0; i < TTM_BO_VM_NUM_PREFAULT; ++i) {
if (bo->mem.bus.is_iomem)
pfn = ((bo->mem.bus.base + bo->mem.bus.offset) >> PAGE_SHIFT) + page_offset;
else {
The "pfn" needs to reflect the correct system bus address to get to the VRAM
on the graphics card.
I will rework the commentary and resend.
Thanks for the feedback.
Jay
On 06/13/2011 07:35 PM, Dave Airlie wrote:On Fri, Jun 10, 2011 at 8:20 AM, Jay Estabrook [off-list ref] wrote:quoted
Alpha needs to have the system bus address for the device's local memory available, so that it can be returned to user-level, where it may be used in an mmap(). So, we make bus.addr hold the ioremap() return for kernel use, and then we can modify bus.base appropriately.I don't get this. why is mmap passing in an address? we don't do that anymore. When you mmap the device node it passes back a hashed offset in the table, that the kernel then translates into a proper address and sets up the page tables. So I really don't get what this patch is doing, either the explaination of what it is doing is wrong or it is wrong. Dave.