2009-06-25 10:59:07

by vijay baskar

[permalink] [raw]
Subject: UIO driver for framebuffer

Hi all,

I have written a uio driver for framebuffer device. I added device
specific register memory in uio.mem. I also added DMA param memory in
uio.mem to perform DMA from userspace. Also video RAM
<http://fixunix.com/#> was mapped in kernel space using
dma_alloc_coherent() and a logical address was obtained. This logical
address was also added in uio.mem with memtype as UIO_MEM_LOGICAL
because i can fill video ram from userspace.Read and write to this DMA
param memory from userspace is not having any effect. Also video RAM
memory that i filled up is not getting written to the framebuffer device
when DMA is started. Also one more info that i noted was that values
assigned to logical addresses in kernel space are not reflected in
userspace after mmap. The values in userspace show different values
compared to that in kernel space.
This is a bit confusing for me. Why is this happening?? Have I missed
any information?? Am i on the right path??

regards,
vijai


2009-06-28 16:00:37

by Hans J. Koch

[permalink] [raw]
Subject: Re: UIO driver for framebuffer

On Thu, Jun 25, 2009 at 05:11:25PM +0530, vijay baskar wrote:
> Hi all,
>
> I have written a uio driver for framebuffer device.

Why? Framebuffer devices should be handled by the framebuffer subsystem which
already makes the framebuffer accessible from userspace in a way that's
supported by many userspace libraries. Why do you want to reinvent the wheel
in an incompatible way?

> I added device
> specific register memory in uio.mem. I also added DMA param memory in
> uio.mem to perform DMA from userspace. Also video RAM
> <http://fixunix.com/#> was mapped in kernel space using
> dma_alloc_coherent() and a logical address was obtained. This logical
> address was also added in uio.mem with memtype as UIO_MEM_LOGICAL
> because i can fill video ram from userspace.Read and write to this DMA
> param memory from userspace is not having any effect. Also video RAM
> memory that i filled up is not getting written to the framebuffer device
> when DMA is started. Also one more info that i noted was that values
> assigned to logical addresses in kernel space are not reflected in
> userspace after mmap. The values in userspace show different values
> compared to that in kernel space.
> This is a bit confusing for me.

For me too.

> Why is this happening?? Have I missed
> any information??

Yes, UIO is not for devices that are already supported by other subsystems.

> Am i on the right path??

I don't think so, unless you can provide good technical reasons for your
concept.

Thanks,
Hans

>
> regards,
> vijai
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/