<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/drm/drm_fb_helper.h, branch v3.0.29</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>drm: Export the command-line mode parser</title>
<updated>2011-04-28T04:56:23+00:00</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2011-04-17T06:43:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1794d257fa7bab3ea5162f8abdca749996b65343'/>
<id>1794d257fa7bab3ea5162f8abdca749996b65343</id>
<content type='text'>
In the absence of configuration data for providing the fixed mode for
a panel, I would like to be able to pass such modes along a separate
module paramenter. To do so, I then need to parse a modeline from a
string, which drm is already capable of. Export that capability to the
drivers.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the absence of configuration data for providing the fixed mode for
a panel, I would like to be able to pass such modes along a separate
module paramenter. To do so, I then need to parse a modeline from a
string, which drm is already capable of. Export that capability to the
drivers.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: Take lock around probes for drm_fb_helper_hotplug_event</title>
<updated>2011-04-28T04:50:25+00:00</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2011-04-22T10:03:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7394371d85699a1d6d49b61f65583d6cd902a6a2'/>
<id>7394371d85699a1d6d49b61f65583d6cd902a6a2</id>
<content type='text'>
We need to hold the dev-&gt;mode_config.mutex whilst detecting the output
status. But we also need to drop it for the call into
drm_fb_helper_single_fb_probe(), which indirectly acquires the lock when
attaching the fbcon.

Failure to do so exposes a race with normal output probing. Detected by
adding some warnings that the mutex is held to the backend detect routines:

[   17.772456] WARNING: at drivers/gpu/drm/i915/intel_crt.c:471 intel_crt_detect+0x3e/0x373 [i915]()
[   17.772458] Hardware name: Latitude E6400
[   17.772460] Modules linked in: ....
[   17.772582] Pid: 11, comm: kworker/0:1 Tainted: G        W 2.6.38.4-custom.2 #8
[   17.772584] Call Trace:
[   17.772591]  [&lt;ffffffff81046af5&gt;] ? warn_slowpath_common+0x78/0x8c
[   17.772603]  [&lt;ffffffffa03f3e5c&gt;] ? intel_crt_detect+0x3e/0x373 [i915]
[   17.772612]  [&lt;ffffffffa0355d49&gt;] ?  drm_helper_probe_single_connector_modes+0xbf/0x2af [drm_kms_helper]
[   17.772619]  [&lt;ffffffffa03534d5&gt;] ?  drm_fb_helper_probe_connector_modes+0x39/0x4d [drm_kms_helper]
[   17.772625]  [&lt;ffffffffa0354760&gt;] ?  drm_fb_helper_hotplug_event+0xa5/0xc3 [drm_kms_helper]
[   17.772633]  [&lt;ffffffffa035577f&gt;] ? output_poll_execute+0x146/0x17c [drm_kms_helper]
[   17.772638]  [&lt;ffffffff81193c01&gt;] ? cfq_init_queue+0x247/0x345
[   17.772644]  [&lt;ffffffffa0355639&gt;] ? output_poll_execute+0x0/0x17c [drm_kms_helper]
[   17.772648]  [&lt;ffffffff8105b540&gt;] ? process_one_work+0x193/0x28e
[   17.772652]  [&lt;ffffffff8105c6bc&gt;] ? worker_thread+0xef/0x172
[   17.772655]  [&lt;ffffffff8105c5cd&gt;] ? worker_thread+0x0/0x172
[   17.772658]  [&lt;ffffffff8105c5cd&gt;] ? worker_thread+0x0/0x172
[   17.772663]  [&lt;ffffffff8105f767&gt;] ? kthread+0x7a/0x82
[   17.772668]  [&lt;ffffffff8100a724&gt;] ? kernel_thread_helper+0x4/0x10
[   17.772671]  [&lt;ffffffff8105f6ed&gt;] ? kthread+0x0/0x82
[   17.772674]  [&lt;ffffffff8100a720&gt;] ? kernel_thread_helper+0x0/0x10

Reported-by:  Frederik Himpe &lt;fhimpe@telenet.be&gt;
References: https://bugs.freedesktop.org/show_bug.cgi?id=36394
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to hold the dev-&gt;mode_config.mutex whilst detecting the output
status. But we also need to drop it for the call into
drm_fb_helper_single_fb_probe(), which indirectly acquires the lock when
attaching the fbcon.

Failure to do so exposes a race with normal output probing. Detected by
adding some warnings that the mutex is held to the backend detect routines:

[   17.772456] WARNING: at drivers/gpu/drm/i915/intel_crt.c:471 intel_crt_detect+0x3e/0x373 [i915]()
[   17.772458] Hardware name: Latitude E6400
[   17.772460] Modules linked in: ....
[   17.772582] Pid: 11, comm: kworker/0:1 Tainted: G        W 2.6.38.4-custom.2 #8
[   17.772584] Call Trace:
[   17.772591]  [&lt;ffffffff81046af5&gt;] ? warn_slowpath_common+0x78/0x8c
[   17.772603]  [&lt;ffffffffa03f3e5c&gt;] ? intel_crt_detect+0x3e/0x373 [i915]
[   17.772612]  [&lt;ffffffffa0355d49&gt;] ?  drm_helper_probe_single_connector_modes+0xbf/0x2af [drm_kms_helper]
[   17.772619]  [&lt;ffffffffa03534d5&gt;] ?  drm_fb_helper_probe_connector_modes+0x39/0x4d [drm_kms_helper]
[   17.772625]  [&lt;ffffffffa0354760&gt;] ?  drm_fb_helper_hotplug_event+0xa5/0xc3 [drm_kms_helper]
[   17.772633]  [&lt;ffffffffa035577f&gt;] ? output_poll_execute+0x146/0x17c [drm_kms_helper]
[   17.772638]  [&lt;ffffffff81193c01&gt;] ? cfq_init_queue+0x247/0x345
[   17.772644]  [&lt;ffffffffa0355639&gt;] ? output_poll_execute+0x0/0x17c [drm_kms_helper]
[   17.772648]  [&lt;ffffffff8105b540&gt;] ? process_one_work+0x193/0x28e
[   17.772652]  [&lt;ffffffff8105c6bc&gt;] ? worker_thread+0xef/0x172
[   17.772655]  [&lt;ffffffff8105c5cd&gt;] ? worker_thread+0x0/0x172
[   17.772658]  [&lt;ffffffff8105c5cd&gt;] ? worker_thread+0x0/0x172
[   17.772663]  [&lt;ffffffff8105f767&gt;] ? kthread+0x7a/0x82
[   17.772668]  [&lt;ffffffff8100a724&gt;] ? kernel_thread_helper+0x4/0x10
[   17.772671]  [&lt;ffffffff8105f6ed&gt;] ? kthread+0x0/0x82
[   17.772674]  [&lt;ffffffff8100a720&gt;] ? kernel_thread_helper+0x0/0x10

Reported-by:  Frederik Himpe &lt;fhimpe@telenet.be&gt;
References: https://bugs.freedesktop.org/show_bug.cgi?id=36394
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/i915: restore only the mode of this driver on lastclose (v2)</title>
<updated>2011-04-27T07:51:59+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2011-04-21T21:18:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e8e7a2b8ccfdae0d4cb6bd25824bbedcd42da316'/>
<id>e8e7a2b8ccfdae0d4cb6bd25824bbedcd42da316</id>
<content type='text'>
i915 calls the panic handler function on last close to reset the modes,
however this is a really bad idea for multi-gpu machines, esp shareable
gpus machines. So add a new entry point for the driver to just restore
its own fbcon mode.

v2: move code into fb helper, fix panic code to block mode change on
powered off GPUs.

[airlied: this hits drm core and I wrote it and it was reviewed on intel-gfx
 so really I signed it off twice ;-).]
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
i915 calls the panic handler function on last close to reset the modes,
however this is a really bad idea for multi-gpu machines, esp shareable
gpus machines. So add a new entry point for the driver to just restore
its own fbcon mode.

v2: move code into fb helper, fix panic code to block mode change on
powered off GPUs.

[airlied: this hits drm core and I wrote it and it was reviewed on intel-gfx
 so really I signed it off twice ;-).]
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "drm: Update fbdev fb_fix_screeninfo"</title>
<updated>2011-01-15T00:10:28+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2011-01-14T23:27:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3632ef8909118db9584e1bed9538dc180adb32f8'/>
<id>3632ef8909118db9584e1bed9538dc180adb32f8</id>
<content type='text'>
This reverts commit dfe63bb0ad9810db13aab0058caba97866e0a681.

This commit was causing nouveau not to work properly, for -rc1 I'd
prefer it worked and we can look if this is useful for 2.6.39.

Cc: James Simmons &lt;jsimmons@infradead.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit dfe63bb0ad9810db13aab0058caba97866e0a681.

This commit was causing nouveau not to work properly, for -rc1 I'd
prefer it worked and we can look if this is useful for 2.6.39.

Cc: James Simmons &lt;jsimmons@infradead.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: Update fbdev fb_fix_screeninfo</title>
<updated>2011-01-07T03:44:40+00:00</updated>
<author>
<name>James Simmons</name>
<email>jsimmons@infradead.org</email>
</author>
<published>2010-12-23T16:40:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=dfe63bb0ad9810db13aab0058caba97866e0a681'/>
<id>dfe63bb0ad9810db13aab0058caba97866e0a681</id>
<content type='text'>
If you change the color depth via fbset or some other framebuffer aware
userland application struct fb_fix_screeninfo is not updated to this new
information. This patch fixes this issue. Also the function is changed to
just pass in struct drm_framebuffer so in the future we could use more
fields. I'm hoping some day fix-&gt;smem* could be set here :-)

Signed-off-by: James Simmons &lt;jsimmons@infradead.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If you change the color depth via fbset or some other framebuffer aware
userland application struct fb_fix_screeninfo is not updated to this new
information. This patch fixes this issue. Also the function is changed to
just pass in struct drm_framebuffer so in the future we could use more
fields. I'm hoping some day fix-&gt;smem* could be set here :-)

Signed-off-by: James Simmons &lt;jsimmons@infradead.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: add KGDB/KDB support</title>
<updated>2010-08-05T14:22:31+00:00</updated>
<author>
<name>Jesse Barnes</name>
<email>jbarnes@virtuousgeek.org</email>
</author>
<published>2010-08-05T14:22:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1a7aba7f4e45014c5a4741164b1ecb4ffe616fb7'/>
<id>1a7aba7f4e45014c5a4741164b1ecb4ffe616fb7</id>
<content type='text'>
Implement the callbacks for KDB entry/exit via the drm helpers.

Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
Signed-off-by: Jason Wessel &lt;jason.wessel@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement the callbacks for KDB entry/exit via the drm helpers.

Signed-off-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
Signed-off-by: Jason Wessel &lt;jason.wessel@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/fbdev: rework output polling to be back in the core. (v4)</title>
<updated>2010-05-18T07:40:11+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-05-07T06:42:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=eb1f8e4f3be898df808e2dfc131099f5831d491d'/>
<id>eb1f8e4f3be898df808e2dfc131099f5831d491d</id>
<content type='text'>
After thinking it over a lot it made more sense for the core to deal with
the output polling especially so it can notify X.

v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings.

v3: add config lock take inside polling, add intel/nouveau poll init/fini calls

v4: config lock was a bit agressive, only needed around connector list reading.
otherwise it could re-enter.

glisse: discard drm_helper_hpd_irq_event

v3: Reviewed-by: Michel DÃ¤nzer &lt;michel@daenzer.net&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After thinking it over a lot it made more sense for the core to deal with
the output polling especially so it can notify X.

v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings.

v3: add config lock take inside polling, add intel/nouveau poll init/fini calls

v4: config lock was a bit agressive, only needed around connector list reading.
otherwise it could re-enter.

glisse: discard drm_helper_hpd_irq_event

v3: Reviewed-by: Michel DÃ¤nzer &lt;michel@daenzer.net&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/kms/fb: use slow work mechanism for normal hotplug also.</title>
<updated>2010-04-07T00:30:38+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-03-30T05:34:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4abe35204af82a018ca3ce6db4102aa09719698e'/>
<id>4abe35204af82a018ca3ce6db4102aa09719698e</id>
<content type='text'>
a) slow work is always used now for any fbcon hotplug, as its not
   a fast task and is more suited to being ran under slow work.

b) attempt to not do any fbdev changes when X is running as we'll
   just mess it up. This hooks set_par to hopefully do the changes
   once X hands control to fbdev.

This also adds the nouveau/intel hotplug support.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
a) slow work is always used now for any fbcon hotplug, as its not
   a fast task and is more suited to being ran under slow work.

b) attempt to not do any fbdev changes when X is running as we'll
   just mess it up. This hooks set_par to hopefully do the changes
   once X hands control to fbdev.

This also adds the nouveau/intel hotplug support.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/kms/fb: add polling support for when nothing is connected.</title>
<updated>2010-04-07T00:29:52+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-03-30T05:34:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5c4426a782bc9509573fc7958a786ebd14fafdf3'/>
<id>5c4426a782bc9509573fc7958a786ebd14fafdf3</id>
<content type='text'>
When we are running in a headless environment we have no idea what
output the user might plug in later, we only have hotplug detect
from the digital outputs. So if we detect no connected outputs at
initialisation, start a slow work operation to poll every 5 seconds
for an output.

this is only hooked up for radeon so far, on hw where we have full
hotplug detection there is no need for this.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we are running in a headless environment we have no idea what
output the user might plug in later, we only have hotplug detect
from the digital outputs. So if we detect no connected outputs at
initialisation, start a slow work operation to poll every 5 seconds
for an output.

this is only hooked up for radeon so far, on hw where we have full
hotplug detection there is no need for this.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/kms/fb: separate fbdev connector list from core drm connectors</title>
<updated>2010-04-07T00:28:01+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-03-30T05:34:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0b4c0f3f0eceacb691e2b5570d9b16d751ce1b48'/>
<id>0b4c0f3f0eceacb691e2b5570d9b16d751ce1b48</id>
<content type='text'>
This breaks the connection between the core drm connector list
and the fbdev connector usage, and allows them to become disjoint
in the future. It also removes the untype void* that was in the
connector struct to support this.

All connectors are added to the fbdev now but this could be
changed in the future.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This breaks the connection between the core drm connector list
and the fbdev connector usage, and allows them to become disjoint
in the future. It also removes the untype void* that was in the
connector struct to support this.

All connectors are added to the fbdev now but this could be
changed in the future.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
