From: <he...@ar...> - 2003-02-21 19:22:58
|
Thanks for sugesstions! "STATIC_PSEUDOCOLOR" I will check. Problem: My Display have no hardware palette registers. So I can not handle this. It is a fix hardware monochrome black or white. What should I do, if Xserver calls me as "set color palette register"? Memory is ok. It's a special trick! Display have no physical memory. Can not mepped this. So a Interval Timer compare with a second shadow buffer and utpade differences to Screen Hardware. It's not good but have no other way. In boot process is all ok. FB Text console works. FB logo is also ok. But how the Xserver Kdrive write only 0x00 into my video RAM? This clear only the full screen. Henry ---------------------------------------------------------------------------- Schlagen Sie sofort zu - mit Arcor und eBay Viele Artikel zum Sofort Kaufen! http://www.arcor.de/auk/ebay_sk.php ----------------------------------------------------------------------- |
From: <he...@ar...> - 2003-02-24 20:33:20
|
Hello Tony, many, many thanks for your sugestions! __get_free_pages() and co works now. The last added function was SetPageReserved(). I do not know about this fun= ktion, find only in other FB drivers. So I will reading something about mem= ory function in kernel and give all my functions the correct Arguments. Thanks again! Henry >=20 > Yes, I saw that. What I meant was XFBDev (and most fb-based > applications) requires that video memory is mappable to userspace, > otherwise the driver will only work within the console. If you need to > have these apps work, then you have to find a way to map the video > memory. Also fix->smem_start requires a physical address, so you need > the virt_to_phys() macro. >=20 > You can try this in xxxfb_encode_fix(): >=20 > fix->smem_start =3D virt_to_phys(info.vmemory) >=20 > If you're very lucky, vmalloc() might have given you a chunk of memory > that is linear. Do not rely on vmalloc() though, try __get_free_pages() > instead. >=20 > Tony >=20 ---------------------------------------------------------------------------= - Nehmen Sie sich Zeit f=FCr das Kuschelwochenende! Bei Arcor-Video on Demand gibt es w=E4hrend des Kuschelwochenendes vom 29. November 12 Uhr bis zum 2. Dezember 12 Uhr 100 Spielfilme ab 99 Cent: http://www.arcor.de/home/redir.php/email.kuscheln ----------------------------------------------------------------------- |
From: Antonino D. <ad...@po...> - 2003-02-24 22:46:03
|
On Tue, 2003-02-25 at 04:33, he...@ar... wrote: > Hello Tony, > > many, many thanks for your sugestions! __get_free_pages() and co works now. > > The last added function was SetPageReserved(). I do not know about this funktion, find only in other FB drivers. So I will reading something about memory function in kernel and give all my functions the correct Arguments. > > Thanks again! > Yes, I forgot about that. The PG_reserved bit prevents the page from being swapped out. Also, remap_page_range() does not allow mapping non-reserved pages, ie. when a user tries to mmap(), the OS will pagefault it to a new page instead. Tony |
From: Antonino D. <ad...@po...> - 2003-02-23 11:31:19
|
On Sat, 2003-02-22 at 03:22, he...@ar... wrote: > Thanks for sugesstions! > > "STATIC_PSEUDOCOLOR" I will check. Problem: My Display have no hardware palette registers. So I can not handle this. It is a fix hardware monochrome black or white. What should I do, if Xserver calls me as "set color palette register"? > If the hardware can only support black and white, then you have to export the visual as FB_VISUAL_MONO01 (1 - black, 0 - white) or FB_VISUAL_MONO10 (0 - black, 1 - white). It's possible for a black and white hardware to have 8 bpp (which means it will only accept 0x00/0xff for black/white). However, the logo drawing function assumes 1bpp only, so monochrome 8-bpp hardware will not have the logo drawn correctly. If your hardware does support 256 colors, but has no hardware registers, then you must export it as STATIC_PSEUDOCOLOR. A correctly-behaving application should recognize that and not attempt to set the color registers. Your driver must however be capable of giving the calling application the default colormap. > Memory is ok. > It's a special trick! Display have no physical memory. Can not mepped this. So a Interval Timer compare with a second shadow buffer and utpade differences to Screen Hardware. It's not good but have no other way. > > In boot process is all ok. FB Text console works. FB logo is also ok. > But how the Xserver Kdrive write only 0x00 into my video RAM? This clear only the full screen. > Yes, I saw that. What I meant was XFBDev (and most fb-based applications) requires that video memory is mappable to userspace, otherwise the driver will only work within the console. If you need to have these apps work, then you have to find a way to map the video memory. Also fix->smem_start requires a physical address, so you need the virt_to_phys() macro. You can try this in xxxfb_encode_fix(): fix->smem_start = virt_to_phys(info.vmemory) If you're very lucky, vmalloc() might have given you a chunk of memory that is linear. Do not rely on vmalloc() though, try __get_free_pages() instead. Tony |
From: Antonino D. <ad...@po...> - 2003-02-23 11:42:51
|
On Sun, 2003-02-23 at 19:31, Antonino Daplas wrote: > > Yes, I saw that. What I meant was XFBDev (and most fb-based > applications) requires that video memory is mappable to userspace, > otherwise the driver will only work within the console. If you need to > have these apps work, then you have to find a way to map the video > memory. Also fix->smem_start requires a physical address, so you need > the virt_to_phys() macro. > > You can try this in xxxfb_encode_fix(): > > fix->smem_start = virt_to_phys(info.vmemory) > > If you're very lucky, vmalloc() might have given you a chunk of memory > that is linear. Do not rely on vmalloc() though, try __get_free_pages() > instead. > BTW: If you do intend to use __get_free_pages(), it will also return a virtual pointer. So you still have to use virt_to_bus() or virt_to_phys(). __get_free_pages() will probably give you around 128-512K of linear memory, possibly more, it depends on the machine architecture. Tony |