Re: [PATCH] [correction] load fbcon from drm_kms_helper

From: David Fries
Date: Sun Dec 12 2010 - 19:34:40 EST


On Sun, Dec 12, 2010 at 11:01:28PM +0100, Florian Mickler wrote:
> On Sun, 12 Dec 2010 12:39:22 -0600
> David Fries <david@xxxxxxxxx> wrote:
>
> > Kconfig says fbcon is required by drm_kms_helper. If radeon, fbcon,
> > and drm_kms_helper are all modules, radeon is auto loaded (by PCI id?),
> > drm_kms_helper is loaded because of the module dependency, but fbcon
> > isn't loaded leaving the console unusable. Since fbcon is required
> > and there isn't an explicit module dependency, request the module
> > to be loaded from drm_kms_helper.
> >
> > Signed-off-by: David Fries <david@xxxxxxxxx>
> > Cc: David Airlie <airlied@xxxxxxxx>
> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
> > ---
> > The last patch had a typo 'namue', mental reminder, test again after
> > running checkpatch.pl.
> >
> > This solves compiling CONFIG_FB=m and being left with a blank screen
> > because the radeon module is automatically loaded, but fbcon isn't.
> > If radeon had to be manually loaded, then it would be the user's fault
> > for
> > not loading fbcon as well, but as radeon is being loaded
> > automatically,
> > there isn't much a user can do from console to even fix it. More bug
> > details from here,
> > https://bugzilla.kernel.org/show_bug.cgi?id=16221
>
> I guess this is reasonable. Maybe _if_ there actually is a usecase for
> a drm driver without fbcon, the drm could provide a
> parameter to skip loading fbcon?

My question was more, is there a usecase for a drm driver with
the fbcon module available, but not wanting it loaded?

> But also the drm Kconfig seems to be bogus? SELECT is not transitiv.
> So selecting DRM_KMS_HELPER is not enough, as it will not select FB
> and FRAMEBUFFER_CONSOLE. Maybe the drm drivers that currently
> select DRM_KMS_HELPER should instead depend on it.

But the "select FB" and "select FRAMEBUFFER_CONSOLE if !EMBEDDED"
Kconfig for DRM_KMS_HELPER is the mechanism that cause FB and
FRAMEBUFFER_CONSOLE to be compiled. The was the other part of my
reasoning, if there is a case for drm without fbcon, DRM_KMS_HELPER
shouldn't force fbcon to be compiled. But as it does require fbcon to
be compiled, and things are clearly broken if a drm driver is loaded
(radeon) but fbcon isn't loaded (no usable console) DRM_KMS_HELPER
should try to load it, hence the patch.

Just for a check I used `make xconfig` to verify they are
automatically selected.
set FB, DRM_RADEON, DRM etc to =n so FRAMEBUFFER_CONSOLE can also be set to =n
set DRM=m (FRAMEBUFFER_CONSOLE still =n)
set DRM_RADEON=m (DRM_KMS_HELPER, FB, and FRAMEBUFFER_CONSOLE become =m)
That's because DRM_RADEON sets DRM_KMS_HELPER, and DRM_KMS_HELPER selects
FB and FRAMEBUFFER_CONSOLE
config DRM_RADEON
select DRM_KMS_HELPER
config DRM_KMS_HELPER
select FB
select FRAMEBUFFER_CONSOLE if !EMBEDDED
and FRAMEBUFFER_CONSOLE is forced to =m

--
David Fries <david@xxxxxxxxx>
http://fries.net/~david/ (PGP encryption key available)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/