Bug 1073960 - kernel 3.14 CONFIG_DRM_TEGRA_FBDEV=y on arm tegra
Summary: kernel 3.14 CONFIG_DRM_TEGRA_FBDEV=y on arm tegra
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: arm
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ARMTracker
TreeView+ depends on / blocked
 
Reported: 2014-03-07 15:01 UTC by Nicolas Chauvet (kwizart)
Modified: 2014-03-18 13:30 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-03-18 13:30:02 UTC


Attachments (Terms of Use)

Description Nicolas Chauvet (kwizart) 2014-03-07 15:01:24 UTC
Description of problem:
With kernel 3.14 currently in rawhide or kernel-nodebug it is possible to enable the drm_tegra built as a module. But having even a basic linux-console requires the CONFIG_DRM_TEGRA_FBDEV=y to be set as a mandatory option.

The alternative would be to use a userspace console such as kmscon that would rely on kms driver. kmscons is been reviewed as 1071653, but this feature is still experimental. It would also make the fedora arm userspace to deviate from the x86 feature wize.


Version-Release number of selected component (if applicable):
kernel 3.14

How reproducible:
always

Steps to Reproduce:
1. boot a tegra device in either text or graphical mode
2. Verify to have the tegra_drm loaded


Actual results:
There is no text console working. I cannot VT switch.
Using the modesetting DDX driver should work under Xorg, but there is no kernel console support.

Expected results:
It should be possible to have console support.

Additional info:
The patch was sent to the fedora kernel mailing list:
https://lists.fedoraproject.org/pipermail/kernel/2014-February/004985.html

Here is the Help text in 3.14:
Choose this option if you have a need for the legacy fbdev support. Note that this support also provides the Linux console on top of the Tegra modesetting driver.

My understanding is that this option is about "fbdev emulation" on top of a kms driver. This is not a "framebuffer driver" such as something we currently keep disabled with options like CONFIG_FB_*

Also this option is automatically selected when using the following with an upstream 3.14 kernel:
make ARCH=arm CROSS_COMPILE=arm-linux-gnu- multi_v7_defconfig
$ grep FBDEV .config
CONFIG_DRM_TEGRA_FBDEV=y

Comment 1 Josh Boyer 2014-03-07 15:17:30 UTC
You didn't really need to open a bug for this.  I was waiting for an ACK on the list from the ARM people.  Who knows.  Maybe they'll respond now that there's a bug.

Comment 2 Nicolas Chauvet (kwizart) 2014-03-07 16:14:13 UTC
Thx for the answear, I raise the point on IRC with peter and fedora-arm meeting, but that wasn't enought to make misunderstandings to disappear.
I was said to report the bug in out bugzilla.

Comment 3 Peter Robinson 2014-03-10 21:04:27 UTC
(In reply to Nicolas Chauvet (kwizart) from comment #2)
> Thx for the answear, I raise the point on IRC with peter and fedora-arm
> meeting, but that wasn't enought to make misunderstandings to disappear.
> I was said to report the bug in out bugzilla.

I don't see what the misunderstanding is here, it's certainly on my side. You've asked me about this 3-4 times already and all times my response has been the same. You come out with comments like "I don't undertand your current mood theses day" which I feel is completely unnecessary and my mood regarding this hasn't changed.

We've actively tried to move towards KMS as the only option on ARM as fbdev even on x86 is "fbdev available as last-ditch fallbacks" and is a legacy option on the way out. We don't actively enable it on any of the other ARM platforms.

https://lists.fedoraproject.org/pipermail/devel/2013-August/188429.html

I've asked you on all occasions to provide detailed reasoning as to why it's needed and it wasn't in the past.

simplefb might be another option we currently enable on ARM too
http://cateee.net/lkddb/web-lkddb/FB_SIMPLE.html

Comment 4 Nicolas Chauvet (kwizart) 2014-03-10 21:29:48 UTC
Adam, Dave,

Can we have a graphical advice about this kernel option. 
(mandatory on graphical tegra, as proven by my owns tests)
My point is still explained in #c1

Comment 5 Peter Robinson 2014-03-10 21:50:58 UTC
According to this thread it shouldn't be needed just for the console. To quote the thread:

> Good point. Stephen, would it be a problem to make this a KMS driver
> instead? Old fbdev API could be emulated on top of it, until it goes out
> of use, couldn't it?

There's already an fbdev emulation layer in KMS, for such a simple use case it 
will work fine.

http://lists.infradead.org/pipermail/linux-arm-kernel/2013-April/165946.html

I read that as KMS already has the bits needed for basic console

Comment 6 Peter Robinson 2014-03-11 00:20:14 UTC
I meant SimpleDRM rather than SimpleFB
http://lists.freedesktop.org/archives/dri-devel/2014-January/052584.html

Comment 7 Nicolas Chauvet (kwizart) 2014-03-12 16:21:17 UTC
(In reply to Peter Robinson from comment #5)
...
> I read that as KMS already has the bits needed for basic console
And this is true. But this requires CONFIG_DRM_TEGRA_FBDEV=y in the tegra case.

The proof of this, reported by testing, is that I cannot get a text console working if the tegra_drm.ko isn't loaded (as said in reproduce step 2)
This tegra_drm.ko is indeed a KMS driver in 3.14.

Now in this case a linux console can be provided if and only if using CONFIG_DRM_TEGRA_FBDEV=y
Because as the help says. " Note that this support also provides the __Linux console__ on top of the Tegra modesetting driver."

Also one cannot enable CONFIG_DRM_TEGRA_FBDEV=y alone (without CONFIG_DRM_TEGRA). Because this option is actually the _fbdev emulation_ layer in KMS you are referring to. So it's tight to CONFIG_DRM_TEGRA (aka the KMS driver) been enabled.

I've indeed hereby report that my tests show that __without__ this option, I can load the tegra_drm and run Xorg without problem, but I __cannot__ have a linux text console.


Now I cannot understand why one could think he would better wait for simple_drm over just use tegra_drm in the tegra case. simple_drm fits for oldgraphics vesa* and raspberry-pi or when there is no better driver available. But it would pass the support to the real hardware driver if any anyway. (as the helper says)

So it still matters to have the tegra_drm properly configured for our current userland. There is no solution to expect from simple_drm as we aim to use tegra_drm. So having CONFIG_DRM_TEGRA_FBDEV=y is required as soon as using a linux console is a mandatory feature in Fedora primaries architectures.

@Peter
If for some reason there is anything in this answear that you disagree with, please at least ask for a third person to report from real hardware tests.

Comment 8 Nicolas Chauvet (kwizart) 2014-03-17 16:41:54 UTC
I've made a scratch build of the rc7 kernel with this options (and few others)
http://koji.fedoraproject.org/koji/taskinfo?taskID=6640652
http://people.fedoraproject.org/cgit/kwizart/public_git/kernel.git/log/?h=wip

Comment 9 Rob Clark 2014-03-18 12:36:09 UTC
(In reply to Peter Robinson from comment #5)
> According to this thread it shouldn't be needed just for the console. To
> quote the thread:
> 
> > Good point. Stephen, would it be a problem to make this a KMS driver
> > instead? Old fbdev API could be emulated on top of it, until it goes out
> > of use, couldn't it?
> 
> There's already an fbdev emulation layer in KMS, for such a simple use case
> it 
> will work fine.
> 
> http://lists.infradead.org/pipermail/linux-arm-kernel/2013-April/165946.html
> 
> I read that as KMS already has the bits needed for basic console

I think I can clear up a bit of confusion here.. recently tegra (and some of the other drm drivers.. incl msm and I think i915) added kconfig options to enable/disable the KMS fbdev emulation.  The main use case for CONFIG_DRM_TEGRA_FBDEV=n is for systems which do not need fbcon, vt switching, etc.  (Ie. things like android)

But we aren't ready for that yet in fedora, or really any linux a desktop system.  We'd need kmscon and a few other things before we could drop the fbdev emulation.

So please, CONFIG_DRM_TEGRA_FBDEV=y is the correct solution.

Comment 10 Josh Boyer 2014-03-18 13:30:02 UTC
Thanks Rob.  That helps.  Fixed in git and should be in the next rawhide build.


Note You need to log in before you can comment on or make changes to this bug.