* Re: Added 915G to intelfb of 2.6.10-kernel-sources
[not found] <41F9BEA6.2030300@XLsigned.net>
@ 2005-01-28 16:42 ` Sylvain Meyer
2005-01-28 21:54 ` Antonino A. Daplas
0 siblings, 1 reply; 4+ messages in thread
From: Sylvain Meyer @ 2005-01-28 16:42 UTC (permalink / raw)
To: Buttchereit, Axel (XLsigned), linux-fbdev-devel
Hi Axel,
Thanks for your patch but could you format it as described in this
document
http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
and resend it.
The best is to use these tools to maintain and send kernel patches
http://www.zip.com.au/~akpm/linux/patches/
Also you should subscribe and send fbdev-related mails to
linux-fbdev-devel@lists.sourceforge.net
Regards
Sylvain
Buttchereit, Axel (XLsigned) a écrit:
> Hi,
>
> though I'm quite sure that the attached patch (intelfb-...) is far
> from complete
> I think that someone/you (guessing from the comments that you are
> maintaining
> the code) might be interested in my work.
>
> Having no technical documentation (from Intel) I had to "develop" the
> patch by
> looking at the xfree/xorg-code that already supports I915G and by using
> trial-and-error (My ThinkCentre's internal graphics device is an I915G
> and that made me start working on this subject).
>
> During development and testing I've discovered that the way "intelfb"
> and maybe
> other framebuffer-drivers are using "modedb" does not work, if
> compiled as a
> module. The initial "modedb entries" are lost (overwritten?) when
> "fb_find_mode"
> is called from the module. Linking "intelfb" into the kernel works as
> expected.
>
> ByTheWay: Why isn't the framebuffer module (intelfb) automatically
> loaded, if
> "video=intelfb:..." is specified as kernel-parameter?
>
> I have attached an additional patch (modedb-...) that re-initialize a
> minimal-modedb (my_mini_modedb), if MY_PREFERRED_MODE (1024x768-32@73)
> is used in a call to "fb_find_mode", to show that loading "intelfb" as a
> module works in principle.
>
> Just for completeness I've attached a third (trivial) patch that adds
> support for
> the external graphics adapter (radeon X600, RV380) of my ThinkCentre,
> by treating
> it as an RV350.
>
> Sorry for sending direct email.
>
> --Axel
>
>
>
>
>
>
>
------------------------------------------------------------------------
diff -ruN linux/drivers/video/intelfb.orig/intelfbdrv.c
linux/drivers/video/intelfb/intelfbdrv.c
--- linux/drivers/video/intelfb.orig/intelfbdrv.c 2005-01-26
18:51:13.162054107 +0100
+++ linux/drivers/video/intelfb/intelfbdrv.c 2005-01-27
23:37:21.273059171 +0100
@@ -1,7 +1,8 @@
/*
* intelfb
*
- * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G
+ * *** XLsigned-2005-01-27: Added 915G ***
+ * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G
* integrated graphics chips.
*
* Copyright © 2002, 2003 David Dawes <dawes@xfree86.org>
@@ -153,6 +154,8 @@
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_845G, PCI_ANY_ID,
PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_845G },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_85XGM, PCI_ANY_ID,
PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_85XGM },
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_865G, PCI_ANY_ID,
PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_865G },
+ /* XLsigned-2005-01-27: Added 915G */
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_915G, PCI_ANY_ID,
PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, INTELFB_CLASS_MASK, INTEL_915G },
{ 0, }
};
@@ -516,13 +519,25 @@
}
/* Set base addresses. */
- dinfo->aperture.physical = pci_resource_start(pdev, 0);
- dinfo->aperture.size = pci_resource_len(pdev, 0);
- dinfo->mmio_base_phys = pci_resource_start(pdev, 1);
-
- DBG_MSG("fb aperture: 0x%lx/0x%lx, MMIO region: 0x%lx/0x%lx\n",
- pci_resource_start(pdev, 0), pci_resource_len(pdev, 0),
- pci_resource_start(pdev, 1), pci_resource_len(pdev, 1));
+ /* XLsigned-2005-01-27: Added 915G */
+ if (ent->device == PCI_DEVICE_ID_INTEL_915G) {
+ DBG_MSG("XLsigned-Debug: IS_915G\n");
+ dinfo->aperture.physical = pci_resource_start(pdev, 2);
+ dinfo->aperture.size = pci_resource_len(pdev, 2);
+ dinfo->mmio_base_phys = pci_resource_start(pdev, 0);
+
+ DBG_MSG("fb aperture: 0x%lx/0x%lx, MMIO region: 0x%lx/0x%lx\n",
+ pci_resource_start(pdev, 2), pci_resource_len(pdev, 2),
+ pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
+ } else {
+ dinfo->aperture.physical = pci_resource_start(pdev, 0);
+ dinfo->aperture.size = pci_resource_len(pdev, 0);
+ dinfo->mmio_base_phys = pci_resource_start(pdev, 1);
+
+ DBG_MSG("fb aperture: 0x%lx/0x%lx, MMIO region: 0x%lx/0x%lx\n",
+ pci_resource_start(pdev, 0), pci_resource_len(pdev, 0),
+ pci_resource_start(pdev, 1), pci_resource_len(pdev, 1));
+ }
/* Reserve the fb and MMIO regions */
if (!request_mem_region(dinfo->aperture.physical, dinfo->aperture.size,
@@ -756,6 +771,8 @@
printk("). Disabling mode switching.\n");
}
+ DBG_MSG("XLsigned-Debug: Value of bailearly: %d\n",bailearly);
+
if (bailearly == 1)
bailout(dinfo);
@@ -785,7 +802,7 @@
bailout(dinfo);
- if (intelfb_set_fbinfo(dinfo)) {
+ if (intelfb_set_fbinfo(dinfo)) {
cleanup(dinfo);
return -ENODEV;
}
@@ -983,17 +1000,20 @@
var = &dinfo->info->var;
if (FIXED_MODE(dinfo)) {
+ DBG_MSG("XLsigned-Debug: Setting FIXED_MODE\n");
memcpy(var, &dinfo->initial_var,
sizeof(struct fb_var_screeninfo));
msrc = 5;
} else {
if (mode) {
+ DBG_MSG("XLsignedi-Debug: finding given mode: %s\n",mode);
msrc = fb_find_mode(var, dinfo->info, mode,
NULL, 0, NULL, 0);
if (msrc)
msrc |= 8;
}
if (!msrc) {
+ DBG_MSG("XLsigned-Debug: finding PREFERRED_MODE:
%s\n",PREFERRED_MODE);
msrc = fb_find_mode(var, dinfo->info, PREFERRED_MODE,
NULL, 0, NULL, 0);
}
diff -ruN linux/drivers/video/intelfb.orig/intelfbdrv.h
linux/drivers/video/intelfb/intelfbdrv.h
--- linux/drivers/video/intelfb.orig/intelfbdrv.h 2005-01-26
18:51:13.162054107 +0100
+++ linux/drivers/video/intelfb/intelfbdrv.h 2005-01-27
13:23:55.811192427 +0100
@@ -5,7 +5,8 @@
******************************************************************************
* intelfb
*
- * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G
+ * *** XLsigned-2005-01-27: Added 915G ***
+ * Linux framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G
* integrated graphics chips.
*
* Copyright © 2004 Sylvain Meyer
diff -ruN linux/drivers/video/intelfb.orig/intelfb.h
linux/drivers/video/intelfb/intelfb.h
--- linux/drivers/video/intelfb.orig/intelfb.h 2005-01-26
18:51:13.162054107 +0100
+++ linux/drivers/video/intelfb/intelfb.h 2005-01-28
03:59:58.630904165 +0100
@@ -10,7 +10,8 @@
/*** Version/name ***/
#define INTELFB_VERSION "0.9.2"
#define INTELFB_MODULE_NAME "intelfb"
-#define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G"
+/* XLsigned-2005-01-27: Added 915G */
+#define SUPPORTED_CHIPSETS "830M/845G/852GM/855GM/865G/915G"
/*** Debug/feature defines ***/
@@ -35,10 +36,14 @@
#define ALLOCATE_FOR_PANNING 1
#endif
+/* XLsigned-2005-01-27: Make this a match of the (one-and-)only entry
of "my_mini_modedb" */
+#define PREFERRED_MODE "1024x768-32@73"
+
#ifndef PREFERRED_MODE
#define PREFERRED_MODE "1024x768-16@60"
#endif
+
/*** hw-related values ***/
/* PCI ids for supported devices */
@@ -46,6 +51,8 @@
#define PCI_DEVICE_ID_INTEL_845G 0x2562
#define PCI_DEVICE_ID_INTEL_85XGM 0x3582
#define PCI_DEVICE_ID_INTEL_865G 0x2572
+/* XLsigned-2005-01-27: Added 915G */
+#define PCI_DEVICE_ID_INTEL_915G 0x2582
/* Size of MMIO region */
#define INTEL_REG_SIZE 0x80000
@@ -117,7 +124,9 @@
INTEL_852GME,
INTEL_855GM,
INTEL_855GME,
- INTEL_865G
+ /* XLsigned-2005-01-27: Added 915G */
+ INTEL_865G,
+ INTEL_915G
};
struct intelfb_hwstate {
diff -ruN linux/drivers/video/intelfb.orig/intelfbhw.c
linux/drivers/video/intelfb/intelfbhw.c
--- linux/drivers/video/intelfb.orig/intelfbhw.c 2005-01-26
18:51:13.162054107 +0100
+++ linux/drivers/video/intelfb/intelfbhw.c 2005-01-27
20:27:12.672227462 +0100
@@ -98,6 +98,12 @@
*chipset = INTEL_865G;
*mobile = 0;
return 0;
+ /* XLsigned-2005-01-27: Added 915G */
+ case PCI_DEVICE_ID_INTEL_915G:
+ *name = "Intel(R) 915G";
+ *chipset = INTEL_915G;
+ *mobile = 0;
+ return 0;
default:
return 1;
}
@@ -169,6 +175,13 @@
case INTEL_855_GMCH_GMS_STOLEN_32M:
*stolen_size = MB(32) - KB(132);
return 0;
+ /* XLsigned-2005-01-27: Added 915G */
+ case INTEL_915G_GMCH_GMS_STOLEN_48M:
+ *stolen_size = MB(48) - KB(132);
+ return 0;
+ case INTEL_915G_GMCH_GMS_STOLEN_64M:
+ *stolen_size = MB(64) - KB(132);
+ return 0;
case INTEL_855_GMCH_GMS_DISABLED:
ERR_MSG("video memory is disabled\n");
return 0;
@@ -390,7 +403,7 @@
#if VERBOSE > 0
DBG_MSG("intelfbhw_read_hw_state\n");
#endif
-
+
if (!hw || !dinfo)
return -1;
diff -ruN linux/drivers/video/intelfb.orig/intelfbhw.h
linux/drivers/video/intelfb/intelfbhw.h
--- linux/drivers/video/intelfb.orig/intelfbhw.h 2005-01-26
18:51:13.163053957 +0100
+++ linux/drivers/video/intelfb/intelfbhw.h 2005-01-27
14:37:30.365140440 +0100
@@ -46,6 +46,11 @@
#define INTEL_855_GMCH_GMS_STOLEN_16M (0x4 << 4)
#define INTEL_855_GMCH_GMS_STOLEN_32M (0x5 << 4)
+/* XLsigned-2005-01-27: Added 915G */
+#define INTEL_915G_GMCH_GMS_STOLEN_48M (0x6 << 4)
+#define INTEL_915G_GMCH_GMS_STOLEN_64M (0x7 << 4)
+
+
/* HW registers */
/* Fence registers */
------------------------------------------------------------------------
diff -ru linux/drivers/video/aty.orig/ati_ids.h
linux/drivers/video/aty/ati_ids.h
--- linux/drivers/video/aty.orig/ati_ids.h 2005-01-26
05:50:20.235665432 +0100
+++ linux/drivers/video/aty/ati_ids.h 2005-01-26 04:11:46.279111468 +0100
@@ -4,6 +4,9 @@
* radeonfb
*/
+/* XLsigned-2004-11-16i: added RV380 (X600) */
+#define PCI_CHIP_RV380_3E50 0x3E50
+
#define PCI_CHIP_RS100_4136 0x4136
#define PCI_CHIP_RS200_4137 0x4137
#define PCI_CHIP_R300_AD 0x4144
diff -ru linux/drivers/video/aty.orig/radeon_base.c
linux/drivers/video/aty/radeon_base.c
--- linux/drivers/video/aty.orig/radeon_base.c 2005-01-26
05:48:50.965236600 +0100
+++ linux/drivers/video/aty/radeon_base.c 2005-01-26
06:21:33.388589496 +0100
@@ -107,6 +107,13 @@
{ PCI_VENDOR_ID_ATI, id, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (flags) |
(CHIP_FAMILY_##family) }
static struct pci_device_id radeonfb_pci_table[] = {
+
+ /* XLsigned-2004-11-16: added RV380 (X600)
+ * XLsigned-2005-01-26: added CHIP_IS_MOBILITY flag to force
reading
+ * of PLL config from VBIOS (BIOS mapped to RAM) and not from
BIOS-ROM
+ */
+ CHIP_DEF(PCI_CHIP_RV380_3E50, RV350, CHIP_HAS_CRTC2 |
CHIP_IS_MOBILITY),
+
/* Mobility M6 */
CHIP_DEF(PCI_CHIP_RADEON_LY, RV100, CHIP_HAS_CRTC2 |
CHIP_IS_MOBILITY),
CHIP_DEF(PCI_CHIP_RADEON_LZ, RV100, CHIP_HAS_CRTC2 |
CHIP_IS_MOBILITY),
------------------------------------------------------------------------
--- linux/drivers/video/modedb.c.orig 2005-01-28 04:19:28.710375507 +0100
+++ linux/drivers/video/modedb.c 2005-01-28 04:20:33.595040284 +0100
@@ -18,6 +18,9 @@
#undef DEBUG
+/* XLsigned-2005-01-27: Added #define DEBUG 1 */
+#define DEBUG 1
+
#define name_matches(v, s, l) \
((v).name && !strncmp((s), (v).name, (l)) && strlen((v).name) == (l))
#define res_matches(v, x, y) \
@@ -39,6 +42,19 @@
#define DEFAULT_MODEDB_INDEX 0
+/* XLsigned-2005-01-27: Added my_mini_modedb */
+#define MY_PREFERRED_MODE "1024x768-32@73"
+#define IS_MY_PREFERRED_MODE(m) \
+ ((m) && \
+ !strncmp((m),MY_PREFERRED_MODE,strlen(MY_PREFERRED_MODE)) && \
+ (strlen((m)) == strlen(MY_PREFERRED_MODE)))
+static struct fb_videomode my_mini_modedb[] = {
+ {
+ MY_PREFERRED_MODE, 70, 1024, 768, 13333, 180, 24, 29, 3, 136, 6,
+ 0, FB_VMODE_NONINTERLACED, 0
+ }
+};
+
static const __init struct fb_videomode modedb[] = {
{
/* 640x400 @ 70 Hz, 31.5 kHz hsync */
@@ -480,7 +496,42 @@
if (!db) {
db = modedb;
dbsize = sizeof(modedb)/sizeof(*modedb);
+ /* XLsigned: 2005-01-27: Added my_mini_modedb
+ * ANY static "modedb" is obviously destroyed when this function
+ * is called from a loadable (framebuffer-)module (like intelfb)
+ */
+ if (mode_option) {
+ DPRINTK("XLsigned-Debug: mode_option = %s\n", mode_option);
+ DPRINTK("XLsigned-Debug: MY_PREFERRED_MODE = %s\n",
MY_PREFERRED_MODE);
+ }
+ else {
+ DPRINTK("XLsigned-Debug: No mode_option specified\n");
+ }
+ if (IS_MY_PREFERRED_MODE(mode_option)) {
+ my_mini_modedb[0].name = MY_PREFERRED_MODE;
+ my_mini_modedb[0].refresh = 70;
+ my_mini_modedb[0].xres = 1024;
+ my_mini_modedb[0].yres = 768;
+ my_mini_modedb[0].pixclock = 13333;
+ my_mini_modedb[0].left_margin = 180;
+ my_mini_modedb[0].right_margin = 24;
+ my_mini_modedb[0].upper_margin = 29;
+ my_mini_modedb[0].lower_margin = 3;
+ my_mini_modedb[0].hsync_len = 136;
+ my_mini_modedb[0].vsync_len = 6;
+ my_mini_modedb[0].sync = 0;
+ my_mini_modedb[0].vmode = FB_VMODE_NONINTERLACED;
+ my_mini_modedb[0].flag = 0;
+
+ db = my_mini_modedb;
+ dbsize = sizeof(my_mini_modedb)/sizeof(*my_mini_modedb);
+ DPRINTK("XLsigned-Debug: using my_mini_modedb: dbsize = %i\n",
dbsize);
+ }
+ else {
+ DPRINTK("XLsigned-Debug: using builtin modedb: dbsize = %i\n",
dbsize);
+ }
}
+
if (!default_mode)
default_mode = &modedb[DEFAULT_MODEDB_INDEX];
if (!default_bpp)
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: Added 915G to intelfb of 2.6.10-kernel-sources
2005-01-28 16:42 ` Added 915G to intelfb of 2.6.10-kernel-sources Sylvain Meyer
@ 2005-01-28 21:54 ` Antonino A. Daplas
2005-01-28 22:41 ` Buttchereit, Axel (XLsigned)
0 siblings, 1 reply; 4+ messages in thread
From: Antonino A. Daplas @ 2005-01-28 21:54 UTC (permalink / raw)
To: linux-fbdev-devel, Sylvain Meyer, Buttchereit, Axel (XLsigned)
On Saturday 29 January 2005 00:42, Sylvain Meyer wrote:
> Hi Axel,
>
> Thanks for your patch but could you format it as described in this
> document
> http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
>
> and resend it.
>
> The best is to use these tools to maintain and send kernel patches
> http://www.zip.com.au/~akpm/linux/patches/
>
> Also you should subscribe and send fbdev-related mails to
> linux-fbdev-devel@lists.sourceforge.net
>
> Regards
> Sylvain
>
> Buttchereit, Axel (XLsigned) a écrit:
> > Hi,
> >
> > though I'm quite sure that the attached patch (intelfb-...) is far
> > from complete
> > I think that someone/you (guessing from the comments that you are
> > maintaining
> > the code) might be interested in my work.
Can you resend the patch that touches only intelfb? Also, there are a lot
of XLSigned with the printk's, what is that?
> >
> > Having no technical documentation (from Intel) I had to "develop" the
> > patch by
> > looking at the xfree/xorg-code that already supports I915G and by using
> > trial-and-error (My ThinkCentre's internal graphics device is an I915G
> > and that made me start working on this subject).
> >
> > During development and testing I've discovered that the way "intelfb"
> > and maybe
> > other framebuffer-drivers are using "modedb" does not work, if
> > compiled as a
> > module. The initial "modedb entries" are lost (overwritten?) when
> > "fb_find_mode"
> > is called from the module. Linking "intelfb" into the kernel works as
Because the modedb array is marked __init. You can however pass
the vesa_modes array instead to fb_find_mode().
> > expected.
> >
> > ByTheWay: Why isn't the framebuffer module (intelfb) automatically
> > loaded, if
> > "video=intelfb:..." is specified as kernel-parameter?
If you want it loaded automatically, compile the driver statically. If you don't
want to load a compiled-in driver, use:
video=intelfb:off
Tony
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: Added 915G to intelfb of 2.6.10-kernel-sources
2005-01-28 21:54 ` Antonino A. Daplas
@ 2005-01-28 22:41 ` Buttchereit, Axel (XLsigned)
2005-01-29 0:19 ` Antonino A. Daplas
0 siblings, 1 reply; 4+ messages in thread
From: Buttchereit, Axel (XLsigned) @ 2005-01-28 22:41 UTC (permalink / raw)
To: adaplas; +Cc: linux-fbdev-devel, Sylvain Meyer
Antonino A. Daplas wrote:
> Can you resend the patch that touches only intelfb? Also, there are a lot
> of XLSigned with the printk's, what is that?
Yes, I will do so.
I've marked all the places where I added/changed something with a
comment that contains my domainname (for finding them easier
during editing). I'll remove this before resending.
> Because the modedb array is marked __init. You can however pass
> the vesa_modes array instead to fb_find_mode().
Ah, yes!
At the moment "intelfb" does not pass any "modedb" in its call(s) to
"fb_find_mode()" which results in using the "__init modedb" in case
of "static link" and using no modedb (actually using a not-initialized one)
at all, otherwise.
Passing "vesa_modes" would make things better when loading
"intelfb" as a module, but would change "well known behaviour",
when linked statically, though I could perfectly live with an "initfb"
that is always using "vesa_modedb".
Any suggestions?
Bumping into driver development for the first time it's quite
clear that I do not know many important things that I should know.
So please be "forgiving", if I ask stupid questions like this one:
How do I detect, if something (intelfb) is loaded as a module or
statically linked into the kernel?
>>>ByTheWay: Why isn't the framebuffer module (intelfb) automatically
>>>loaded, if
>>>"video=intelfb:..." is specified as kernel-parameter?
>
>
> If you want it loaded automatically, compile the driver statically. If you don't
> want to load a compiled-in driver, use:
>
> video=intelfb:off
This is not exactly what I was asking for. :-)
It would be nice, if the module would automatically be loaded in
"early boot stage", when specified as a kernel-parameter. But this is
not really important (for me), because using "udev" and "hotplug/coldplug"
(on gentoo) finally loads it anyway.
Thanks
--Axel
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: Added 915G to intelfb of 2.6.10-kernel-sources
2005-01-28 22:41 ` Buttchereit, Axel (XLsigned)
@ 2005-01-29 0:19 ` Antonino A. Daplas
0 siblings, 0 replies; 4+ messages in thread
From: Antonino A. Daplas @ 2005-01-29 0:19 UTC (permalink / raw)
To: Buttchereit, Axel (XLsigned), adaplas; +Cc: linux-fbdev-devel, Sylvain Meyer
On Saturday 29 January 2005 06:41, Buttchereit, Axel (XLsigned) wrote:
> Antonino A. Daplas wrote:
> > Because the modedb array is marked __init. You can however pass
> > the vesa_modes array instead to fb_find_mode().
>
> Ah, yes!
> At the moment "intelfb" does not pass any "modedb" in its call(s) to
> "fb_find_mode()" which results in using the "__init modedb" in case
> of "static link" and using no modedb (actually using a not-initialized one)
> at all, otherwise.
> Passing "vesa_modes" would make things better when loading
> "intelfb" as a module, but would change "well known behaviour",
> when linked statically, though I could perfectly live with an "initfb"
> that is always using "vesa_modedb".
>
> Any suggestions?
If you really must, you can pass modedb if compiled statically, and
vesa_modedb if compiled as a module.
>
> Bumping into driver development for the first time it's quite
> clear that I do not know many important things that I should know.
> So please be "forgiving", if I ask stupid questions like this one:
>
> How do I detect, if something (intelfb) is loaded as a module or
> statically linked into the kernel?
What do you mean, detect by whom? Detect by another module
in the kernel or by userspace?
You can do several things:
1. Use #ifdef MODULE/#endif
2. Check if CONFIG_FB_INTELFB_MODULE is defined
3. Check struct fb_info.flags if FBINFO_MODULE is set
4. Use symbol_get()/symbol_put() and check the return value before calling
any of the functions of the driver.
> >>>loaded, if
> >>>"video=intelfb:..." is specified as kernel-parameter?
> >
> > If you want it loaded automatically, compile the driver statically. If
> > you don't want to load a compiled-in driver, use:
> >
> > video=intelfb:off
>
> This is not exactly what I was asking for. :-)
> It would be nice, if the module would automatically be loaded in
> "early boot stage", when specified as a kernel-parameter. But this is
Because at this stage, userspace hasn't been initialized yet, so you cannot
automatically load modules (which are stored in the filesystem) without help
from userspace.
> not really important (for me), because using "udev" and "hotplug/coldplug"
> (on gentoo) finally loads it anyway.
>
Yes, that is a better solution.
Tony
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2005-01-29 0:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <41F9BEA6.2030300@XLsigned.net>
2005-01-28 16:42 ` Added 915G to intelfb of 2.6.10-kernel-sources Sylvain Meyer
2005-01-28 21:54 ` Antonino A. Daplas
2005-01-28 22:41 ` Buttchereit, Axel (XLsigned)
2005-01-29 0:19 ` Antonino A. Daplas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).