Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
(1) |
Apr
(104) |
May
(81) |
Jun
(248) |
Jul
(133) |
Aug
(33) |
Sep
(53) |
Oct
(82) |
Nov
(166) |
Dec
(71) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(121) |
Feb
(42) |
Mar
(39) |
Apr
(84) |
May
(87) |
Jun
(58) |
Jul
(97) |
Aug
(130) |
Sep
(32) |
Oct
(139) |
Nov
(108) |
Dec
(216) |
2003 |
Jan
(299) |
Feb
(136) |
Mar
(392) |
Apr
(141) |
May
(137) |
Jun
(107) |
Jul
(94) |
Aug
(262) |
Sep
(300) |
Oct
(216) |
Nov
(72) |
Dec
(94) |
2004 |
Jan
(174) |
Feb
(192) |
Mar
(215) |
Apr
(314) |
May
(319) |
Jun
(293) |
Jul
(205) |
Aug
(161) |
Sep
(192) |
Oct
(226) |
Nov
(308) |
Dec
(89) |
2005 |
Jan
(127) |
Feb
(269) |
Mar
(588) |
Apr
(106) |
May
(77) |
Jun
(77) |
Jul
(161) |
Aug
(239) |
Sep
(86) |
Oct
(112) |
Nov
(153) |
Dec
(145) |
2006 |
Jan
(87) |
Feb
(57) |
Mar
(129) |
Apr
(109) |
May
(102) |
Jun
(232) |
Jul
(97) |
Aug
(69) |
Sep
(67) |
Oct
(69) |
Nov
(214) |
Dec
(82) |
2007 |
Jan
(133) |
Feb
(307) |
Mar
(121) |
Apr
(171) |
May
(229) |
Jun
(156) |
Jul
(185) |
Aug
(160) |
Sep
(122) |
Oct
(130) |
Nov
(78) |
Dec
(27) |
2008 |
Jan
(105) |
Feb
(137) |
Mar
(146) |
Apr
(148) |
May
(239) |
Jun
(208) |
Jul
(157) |
Aug
(244) |
Sep
(119) |
Oct
(125) |
Nov
(189) |
Dec
(225) |
2009 |
Jan
(157) |
Feb
(139) |
Mar
(106) |
Apr
(130) |
May
(246) |
Jun
(189) |
Jul
(128) |
Aug
(127) |
Sep
(88) |
Oct
(86) |
Nov
(216) |
Dec
(9) |
2010 |
Jan
(5) |
Feb
|
Mar
(11) |
Apr
(31) |
May
(3) |
Jun
|
Jul
(7) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(6) |
2
(21) |
3
(14) |
4
(6) |
5
(29) |
6
(3) |
7
(11) |
8
(15) |
9
(9) |
10
(8) |
11
(5) |
12
(4) |
13
(1) |
14
(3) |
15
(2) |
16
(16) |
17
(13) |
18
(4) |
19
(3) |
20
(2) |
21
(1) |
22
|
23
(1) |
24
(4) |
25
(4) |
26
|
27
(13) |
28
(6) |
29
|
30
(8) |
31
(17) |
|
|
From: Antonino A. Daplas <adaplas@gm...> - 2007-05-28 15:40:19
|
On Mon, 2007-05-28 at 17:25 +0200, xcsnake@... wrote: > Hello, > > I have posted this message on the linux-kernel mailing list, but I think it > could be more appropriate here. > I'm working on a FPGA vga controller, with an arm cpu (at91rm9200). My FPGA is > plugged on a 16 bits data bus. I'm trying to develop the framebuffer driver, > from the epson s1d13xxxfb driver to use my controller. I have a first driver > which works well. To accelerate my controller, I would like to read and write in > my video memory (controlled by the FPGA) by 8 words bursts. Is it possible to > tell the kernel that the memory must be accessed only by 8 words bursts ?? > My driver is available on http://xcsnake.free.fr/driver You can write your own fillrect, imageblit and copyarea routine. The same with fb_read and fb_write. For userland that mmap's the framebuffer, I don't think there's a way to tell them how to access the framebuffer. Tony |
From: Nicolas Ferre <nicolas.ferre@rf...> - 2007-05-28 15:19:11
|
Diego A. Fons : > I was changing the timings values but it seems to get worse, with a set > of values the screen moves with every ftp command thet sftp sends! > Now the values are (it doesn't work either): > > #define AT91_DM9000_NWE_SETUP (8 << 0) > #define AT91_DM9000_NCS_WR_SETUP (4 << 8) > #define AT91_DM9000_NRD_SETUP (8 << 16) > #define AT91_DM9000_NCS_RD_SETUP (4 << 24) > > #define AT91_DM9000_NWE_PULSE (16 << 0) > #define AT91_DM9000_NCS_WR_PULSE (32 << 8) > #define AT91_DM9000_NRD_PULSE (16 << 16) > #define AT91_DM9000_NCS_RD_PULSE (32 << 24) > > #define AT91_DM9000_NWE_CYCLE (36 << 0) > #define AT91_DM9000_NRD_CYCLE (36 << 16) > > #define AT91_DM9000_TDF (1 << 16) > > I test it with lower and higher values and nothing (with 1 and 127). > > Can you tell me how is it possible that the DM9000 timings interfere > with the frame buffer? Well they both use the SDRam/EBI interface (in fact the ARM926 and the LCD) and they may be in conflict some time to get the internal AHB bus (H matrix). The idea is that one or the other master takes the bus for too long. What can help us is if you can also check if the fifo underflow UFLWIS bit (#4) rises during LDC use. So, if the LCD is interrupted during a data burst from sdram, it can have difficulties to resume its transfer. You can try to lower the configured burst length on the LCD : ATMEL_LCDC_DMA_BURST_LEN = 4 (so the register field must be written with 0x3) instead of 8. Another option will be to keep the burst length and increase the slot cycle in the Matrix interface (from 16->32 or 64). It is the preferred one. This is done in the AT91bootstrap but you can do it for testing using a jtag ice. Keep me informed, Cheers, -- Nicolas Ferre |
From: <xcsnake@fr...> - 2007-05-28 14:26:02
|
Hello, I have posted this message on the linux-kernel mailing list, but I think it could be more appropriate here. I'm working on a FPGA vga controller, with an arm cpu (at91rm9200). My FPGA is plugged on a 16 bits data bus. I'm trying to develop the framebuffer driver, from the epson s1d13xxxfb driver to use my controller. I have a first driver which works well. To accelerate my controller, I would like to read and write in my video memory (controlled by the FPGA) by 8 words bursts. Is it possible to tell the kernel that the memory must be accessed only by 8 words bursts ?? My driver is available on http://xcsnake.free.fr/driver Thanks a lot Mickaƫl |
From: Antonino A. Daplas <adaplas@gm...> - 2007-05-28 10:30:16
|
Add function helper, fb_is_primary_device(). Given struct fb_info, it will return a nonzero value if the device is the primary display. Currently, only the i386 is supported where the function checks for the IORESOURCE_ROM_SHADOW flag. Signed-off-by: Antonino Daplas <adaplas@...> --- Geert Uytterhoeven wrote: > On Sun, 27 May 2007, Antonino A. Daplas wrote: >> Add function helper, fb_is_display_device(). Given struct fb_info, it will > ^^^^^^^ > primary > >> return a nonzero value if the device is the primary display. > >> +static inline int fb_is_primary_device(struct fb_screeninfo *info) > ^^^^^^^^^^^^^ Yikes, thanks. Andrew, here's an updated patch. Tony arch/i386/Makefile | 1 + arch/i386/video/Makefile | 1 + arch/i386/video/fbdev.c | 34 ++++++++++++++++++++++++++++++++++ include/asm-alpha/fb.h | 6 ++++++ include/asm-arm/fb.h | 6 ++++++ include/asm-arm26/fb.h | 6 ++++++ include/asm-avr32/fb.h | 6 ++++++ include/asm-blackfin/fb.h | 6 ++++++ include/asm-cris/fb.h | 6 ++++++ include/asm-frv/fb.h | 6 ++++++ include/asm-h8300/fb.h | 6 ++++++ include/asm-i386/fb.h | 3 +++ include/asm-ia64/fb.h | 6 ++++++ include/asm-m32r/fb.h | 6 ++++++ include/asm-m68k/fb.h | 6 ++++++ include/asm-m68knommu/fb.h | 6 ++++++ include/asm-mips/fb.h | 6 ++++++ include/asm-parisc/fb.h | 6 ++++++ include/asm-powerpc/fb.h | 6 ++++++ include/asm-s390/fb.h | 6 ++++++ include/asm-sh/fb.h | 6 ++++++ include/asm-sh64/fb.h | 6 ++++++ include/asm-sparc/fb.h | 6 ++++++ include/asm-sparc64/fb.h | 6 ++++++ include/asm-v850/fb.h | 6 ++++++ include/asm-x86_64/fb.h | 7 ++++++- include/asm-xtensa/fb.h | 6 ++++++ 27 files changed, 177 insertions(+), 1 deletions(-) diff --git a/arch/i386/Makefile b/arch/i386/Makefile index 3eb063e..01f0ff0 100644 --- a/arch/i386/Makefile +++ b/arch/i386/Makefile @@ -111,6 +111,7 @@ drivers-$(CONFIG_PCI) += arch/i386/pci # must be linked after kernel/ drivers-$(CONFIG_OPROFILE) += arch/i386/oprofile/ drivers-$(CONFIG_PM) += arch/i386/power/ +drivers-$(CONFIG_FB) += arch/i386/video/ CFLAGS += $(mflags-y) AFLAGS += $(mflags-y) diff --git a/arch/i386/video/Makefile b/arch/i386/video/Makefile new file mode 100644 index 0000000..2c447c9 --- /dev/null +++ b/arch/i386/video/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_FB) += fbdev.o diff --git a/arch/i386/video/fbdev.c b/arch/i386/video/fbdev.c new file mode 100644 index 0000000..7fc712c --- /dev/null +++ b/arch/i386/video/fbdev.c @@ -0,0 +1,34 @@ +/* + * arch/i386/video/fbdev.c - i386 Framebuffer + * + * Copyright (C) 2007 Antonino Daplas <adaplas@...> + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + * + */ +#include <linux/fb.h> +#include <linux/pci.h> + +int fb_is_primary_device(struct fb_info *info) +{ + struct device *device; + struct pci_dev *pci_dev = NULL; + struct resource *res = NULL; + int retval = 0; + + device = info->device; + + if (device) + pci_dev = to_pci_dev(device); + + if (pci_dev) + res = &pci_dev->resource[PCI_ROM_RESOURCE]; + + if (res && res->flags & IORESOURCE_ROM_SHADOW) + retval = 1; + + return retval; +} +EXPORT_SYMBOL(fb_is_primary_device); diff --git a/include/asm-alpha/fb.h b/include/asm-alpha/fb.h index ca714a4..6d3b5b6 100644 --- a/include/asm-alpha/fb.h +++ b/include/asm-alpha/fb.h @@ -1,7 +1,13 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/device.h> /* Caching is off in the I/O space quadrant by design. */ #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-arm/fb.h b/include/asm-arm/fb.h index 4bf5b88..d92e99c 100644 --- a/include/asm-arm/fb.h +++ b/include/asm-arm/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -10,4 +11,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-arm26/fb.h b/include/asm-arm26/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-arm26/fb.h +++ b/include/asm-arm26/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-avr32/fb.h b/include/asm-avr32/fb.h index d22a4a8..41baf84 100644 --- a/include/asm-avr32/fb.h +++ b/include/asm-avr32/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -12,4 +13,9 @@ static inline void fb_pgprotect(struct f | (_PAGE_BUFFER | _PAGE_DIRTY)); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-blackfin/fb.h b/include/asm-blackfin/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-blackfin/fb.h +++ b/include/asm-blackfin/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-cris/fb.h b/include/asm-cris/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-cris/fb.h +++ b/include/asm-cris/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-frv/fb.h b/include/asm-frv/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-frv/fb.h +++ b/include/asm-frv/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-h8300/fb.h b/include/asm-h8300/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-h8300/fb.h +++ b/include/asm-h8300/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-i386/fb.h b/include/asm-i386/fb.h index d30073c..d1c6297 100644 --- a/include/asm-i386/fb.h +++ b/include/asm-i386/fb.h @@ -1,9 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> +extern int fb_is_primary_device(struct fb_info *info); + static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma, unsigned long off) { diff --git a/include/asm-ia64/fb.h b/include/asm-ia64/fb.h index c06b45b..33f2ba6 100644 --- a/include/asm-ia64/fb.h +++ b/include/asm-ia64/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -13,4 +14,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-m32r/fb.h b/include/asm-m32r/fb.h index 4bf5b88..d92e99c 100644 --- a/include/asm-m32r/fb.h +++ b/include/asm-m32r/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -10,4 +11,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-m68k/fb.h b/include/asm-m68k/fb.h index dc12b5a..6f0c25e 100644 --- a/include/asm-m68k/fb.h +++ b/include/asm-m68k/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> #include <asm/setup.h> @@ -24,4 +25,9 @@ static inline void fb_pgprotect(struct f } #endif /* CONFIG_SUN3 */ +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-m68knommu/fb.h b/include/asm-m68knommu/fb.h index 9f8c88d..f2752d4 100644 --- a/include/asm-m68knommu/fb.h +++ b/include/asm-m68knommu/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-mips/fb.h b/include/asm-mips/fb.h index ac23d96..cc740a9 100644 --- a/include/asm-mips/fb.h +++ b/include/asm-mips/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -10,4 +11,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-parisc/fb.h b/include/asm-parisc/fb.h index d5e47ed..4d503a0 100644 --- a/include/asm-parisc/fb.h +++ b/include/asm-parisc/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -10,4 +11,9 @@ static inline void fb_pgprotect(struct f pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-powerpc/fb.h b/include/asm-powerpc/fb.h index e13d6eb..411af8d 100644 --- a/include/asm-powerpc/fb.h +++ b/include/asm-powerpc/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -12,4 +13,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-s390/fb.h b/include/asm-s390/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-s390/fb.h +++ b/include/asm-s390/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-sh/fb.h b/include/asm-sh/fb.h index 4bf5b88..d92e99c 100644 --- a/include/asm-sh/fb.h +++ b/include/asm-sh/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -10,4 +11,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-sh64/fb.h b/include/asm-sh64/fb.h index 4bf5b88..d92e99c 100644 --- a/include/asm-sh64/fb.h +++ b/include/asm-sh64/fb.h @@ -1,6 +1,7 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -10,4 +11,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-sparc/fb.h b/include/asm-sparc/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-sparc/fb.h +++ b/include/asm-sparc/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-sparc64/fb.h b/include/asm-sparc64/fb.h index 8703c70..d6cd3a1 100644 --- a/include/asm-sparc64/fb.h +++ b/include/asm-sparc64/fb.h @@ -1,5 +1,6 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -9,4 +10,9 @@ static inline void fb_pgprotect(struct f vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-v850/fb.h b/include/asm-v850/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-v850/fb.h +++ b/include/asm-v850/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-x86_64/fb.h b/include/asm-x86_64/fb.h index d30073c..60548e6 100644 --- a/include/asm-x86_64/fb.h +++ b/include/asm-x86_64/fb.h @@ -1,6 +1,6 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ - +#include <linux/fb.h> #include <linux/fs.h> #include <asm/page.h> @@ -11,4 +11,9 @@ static inline void fb_pgprotect(struct f pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; } +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ diff --git a/include/asm-xtensa/fb.h b/include/asm-xtensa/fb.h index 9f8c88d..c7df380 100644 --- a/include/asm-xtensa/fb.h +++ b/include/asm-xtensa/fb.h @@ -1,6 +1,12 @@ #ifndef _ASM_FB_H_ #define _ASM_FB_H_ +#include <linux/fb.h> #define fb_pgprotect(...) do {} while (0) +static inline int fb_is_primary_device(struct fb_info *info) +{ + return 0; +} + #endif /* _ASM_FB_H_ */ |
From: Geert Uytterhoeven <geert@li...> - 2007-05-28 08:38:00
|
On Sun, 27 May 2007, Antonino A. Daplas wrote: > Add function helper, fb_is_display_device(). Given struct fb_info, it will ^^^^^^^ primary > return a nonzero value if the device is the primary display. > +static inline int fb_is_primary_device(struct fb_screeninfo *info) ^^^^^^^^^^^^^ fb_info Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@... In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds |
From: Antonino A. Daplas <adaplas@gm...> - 2007-05-28 06:33:15
|
unbind_con_driver() should be EXPORT_SYBOL. Signed-off-by: Antonino Daplas <adaplas@...> --- Antonino A. Daplas wrote: > Allow fbcon to select the primary display adapter using the > fb_is_primary_device() arch-specific helper. If a a primary adapter is > detected, fbcon will unbind the old adapter from the VT layer, then rebind > using the new adapter. This requires that bind_/unbind_con_driver() be made > public. > > Because this feature may produce unexpected behavior (from the user's POV), > this must be explicitly enabled in Kconfig. > link errors if compiled as a module. Here's the fix. Tony drivers/char/vt.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/char/vt.c b/drivers/char/vt.c index 45baf04..e5f36e7 100644 --- a/drivers/char/vt.c +++ b/drivers/char/vt.c @@ -2962,6 +2962,7 @@ err: module_put(owner); return retval; }; +EXPORT_SYMBOL(bind_con_driver); #ifdef CONFIG_VT_HW_CONSOLE_BINDING static int con_is_graphics(const struct consw *csw, int first, int last) |