<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/gpu/drm/cirrus/cirrus_fbdev.c, branch linux-4.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.1.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2015-01-21T13:57:03Z</updated>
<entry>
<title>drm/fb-helper: Propagate errors from initial config failure</title>
<updated>2015-01-21T13:57:03Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-12-19T10:21:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=01934c2a691882185b3021d437df13bcba07711d'/>
<id>urn:sha1:01934c2a691882185b3021d437df13bcba07711d</id>
<content type='text'>
Make drm_fb_helper_initial_config() return an int rather than a bool so
that the error can be properly propagated. While at it, update drivers
to propagate errors further rather than just ignore them.

v2:
- cirrus: No cleanup is required, the top-level cirrus_driver_load()
  will do it as part of cirrus_driver_unload() in its cleanup path.
  Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;

Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Patrik Jakobsson &lt;patrik.r.jakobsson@gmail.com&gt;
Cc: Rob Clark &lt;robdclark@gmail.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Christian König &lt;christian.koenig@amd.com&gt;
Cc: Ben Skeggs &lt;bskeggs@redhat.com&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: Patrik Jakobsson &lt;patrik.r.jakobsson@gmail.com&gt;
Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
[danvet: Squash in simplification patch from kbuild.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/cirrus: allow 32bpp framebuffers for cirrus drm</title>
<updated>2014-11-20T01:42:46Z</updated>
<author>
<name>Zach Reizner</name>
<email>zachr@google.com</email>
</author>
<published>2014-10-29T18:04:24Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8975626ea35adcca561f8a81dedccfbc5dd8ec72'/>
<id>urn:sha1:8975626ea35adcca561f8a81dedccfbc5dd8ec72</id>
<content type='text'>
This patch allows framebuffers for cirrus to be created with
32bpp pixel formats provided that they do not violate certain
restrictions of the cirrus hardware.

v2: Use pci resource length for vram size.

Signed-off-by: Zach Reizner &lt;zachr@google.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/cirrus: use container_of to resolve cirrus_fbdev from drm_fb_helper</title>
<updated>2014-09-24T10:09:24Z</updated>
<author>
<name>Fabian Frederick</name>
<email>fabf@skynet.be</email>
</author>
<published>2014-09-14T16:40:14Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ea0622cfb4c0dbf3a8e6c4b448b8636ea75e1069'/>
<id>urn:sha1:ea0622cfb4c0dbf3a8e6c4b448b8636ea75e1069</id>
<content type='text'>
Use container_of instead of casting first structure member.

Signed-off-by: Fabian Frederick &lt;fabf@skynet.be&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm: Introduce drm_fb_helper_prepare()</title>
<updated>2014-07-08T01:31:28Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-06-27T15:19:24Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=10a231026574f9ec9761b6435394b8830b485e4e'/>
<id>urn:sha1:10a231026574f9ec9761b6435394b8830b485e4e</id>
<content type='text'>
To implement hotplug detection in a race-free manner, drivers must call
drm_kms_helper_poll_init() before hotplug events can be triggered. Such
events can be triggered right after any of the encoders or connectors
are initialized. At the same time, if the drm_fb_helper_hotplug_event()
helper is used by a driver, then the poll helper requires some parts of
the FB helper to be initialized to prevent a crash.

At the same time, drm_fb_helper_init() requires information that is not
necessarily available at such an early stage (number of CRTCs and
connectors), so it cannot be used yet.

Add a new helper, drm_fb_helper_prepare(), that initializes the bare
minimum needed to allow drm_kms_helper_poll_init() to execute and any
subsequent hotplug events to be processed properly.

Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm: Constify struct drm_fb_helper_funcs</title>
<updated>2014-07-08T01:31:15Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-06-27T15:19:23Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3a4938799dec32783759b0c66ee3bb8c82dd9937'/>
<id>urn:sha1:3a4938799dec32783759b0c66ee3bb8c82dd9937</id>
<content type='text'>
There's no need for this to be modifiable. Make it const so that it can
be put into the .rodata section.

Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Acked-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mgag200,ast,cirrus: fix regression with drm_can_sleep conversion</title>
<updated>2014-02-06T01:39:03Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2014-02-05T04:47:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8b7ad1bb3d440da888f2a939dc870eba429b9192'/>
<id>urn:sha1:8b7ad1bb3d440da888f2a939dc870eba429b9192</id>
<content type='text'>
I totally sign inverted my way out of this one.

Cc: stable@vger.kernel.org
Reported-by: "Sabrina Dubroca" &lt;sd@queasysnail.net&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm: ast,cirrus,mgag200: use drm_can_sleep</title>
<updated>2014-01-29T00:51:52Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2014-01-23T23:50:18Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f4b4718b61d1d5a7442a4fd6863ea80c3a10e508'/>
<id>urn:sha1:f4b4718b61d1d5a7442a4fd6863ea80c3a10e508</id>
<content type='text'>
these 3 were checking in_interrupt but we have situations where
calling vunmap under this could cause a BUG to be hit in
smp_call_function_many. Use the drm_can_sleep macro instead,
which should stop this path from been taken in this case.

Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/cirrus: Fix cirrus drm driver for fbdev + qemu</title>
<updated>2014-01-13T04:15:04Z</updated>
<author>
<name>Martin Koegler</name>
<email>martin.koegler@chello.at</email>
</author>
<published>2014-01-09T09:05:07Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=99d4a8ae93ead27b5a88cdbd09dc556fe96ac3a8'/>
<id>urn:sha1:99d4a8ae93ead27b5a88cdbd09dc556fe96ac3a8</id>
<content type='text'>
Xorg fbdev driver requires smem_start/smem_len, otherwise
it tries to map 0 bytes as video memory.

Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=856760
Signed-off-by: Martin Koegler &lt;martin.koegler@chello.at&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/cirrus: do not attempt to acquire a reservation while in an interrupt handler</title>
<updated>2013-06-28T01:56:30Z</updated>
<author>
<name>Maarten Lankhorst</name>
<email>m.b.lankhorst@gmail.com</email>
</author>
<published>2013-06-27T11:38:24Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=19d4b72c0c22c14900313f89765c5f7ef0a2718a'/>
<id>urn:sha1:19d4b72c0c22c14900313f89765c5f7ef0a2718a</id>
<content type='text'>
Mutexes should not be acquired in interrupt context. While the trylock
fastpath is arguably safe on all implementations, the slowpath
unlock path definitely isn't. This fixes the following lockdep splat:

[   13.044313] ------------[ cut here ]------------
[   13.044367] WARNING: at /c/kernel-tests/src/tip/kernel/mutex.c:858 mutex_trylock+0x87/0x220()
[   13.044378] DEBUG_LOCKS_WARN_ON(in_interrupt())
[   13.044378] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc4-00296-ga2963dd #20
[   13.044379] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[   13.044390]  0000000000000009 ffff88000de039f8 ffffffff81fc86d5 ffff88000de03a38
[   13.044395]  ffffffff810d511b ffff880000000018 ffff88000f33c690 0000000000000001
[   13.044398]  00000000000003f0 ffff88000f4677c8 0000000000000000 ffff88000de03a98
[   13.044400] Call Trace:
[   13.044412]  &lt;IRQ&gt;  [&lt;ffffffff81fc86d5&gt;] dump_stack+0x19/0x1b
[   13.044441]  [&lt;ffffffff810d511b&gt;] warn_slowpath_common+0x6b/0x90
[   13.044445]  [&lt;ffffffff810d51a6&gt;] warn_slowpath_fmt+0x46/0x50
[   13.044448]  [&lt;ffffffff81fd34d7&gt;] mutex_trylock+0x87/0x220
[   13.044482]  [&lt;ffffffff8186484d&gt;] cirrus_dirty_update+0x1cd/0x330
[   13.044486]  [&lt;ffffffff818649e8&gt;] cirrus_imageblit+0x38/0x50
[   13.044506]  [&lt;ffffffff8165782e&gt;] soft_cursor+0x22e/0x240
[   13.044510]  [&lt;ffffffff81656c31&gt;] bit_cursor+0x581/0x5b0
[   13.044525]  [&lt;ffffffff815de9f4&gt;] ? vsnprintf+0x124/0x670
[   13.044529]  [&lt;ffffffff81651333&gt;] ? get_color.isra.16+0x43/0x130
[   13.044532]  [&lt;ffffffff81653fca&gt;] fbcon_cursor+0x18a/0x1d0
[   13.044535]  [&lt;ffffffff816566b0&gt;] ? update_attr.isra.2+0xa0/0xa0
[   13.044556]  [&lt;ffffffff81754b82&gt;] hide_cursor+0x32/0xa0
[   13.044565]  [&lt;ffffffff81755bd3&gt;] vt_console_print+0x103/0x3b0
[   13.044569]  [&lt;ffffffff810d58ac&gt;] ? print_time+0x9c/0xb0
[   13.044576]  [&lt;ffffffff810d5960&gt;] ? print_prefix+0xa0/0xc0
[   13.044580]  [&lt;ffffffff810d63f6&gt;] call_console_drivers.constprop.6+0x146/0x1f0
[   13.044593]  [&lt;ffffffff815f9b38&gt;] ? do_raw_spin_unlock+0xc8/0x100
[   13.044597]  [&lt;ffffffff810d6f27&gt;] console_unlock+0x2f7/0x460
[   13.044600]  [&lt;ffffffff810d787a&gt;] vprintk_emit+0x59a/0x5e0
[   13.044615]  [&lt;ffffffff81fb676c&gt;] printk+0x4d/0x4f
[   13.044650]  [&lt;ffffffff82ba5511&gt;] print_local_APIC+0x28/0x41c
[   13.044672]  [&lt;ffffffff8114db55&gt;] generic_smp_call_function_single_interrupt+0x145/0x2b0
[   13.044688]  [&lt;ffffffff8106f9e7&gt;] smp_call_function_single_interrupt+0x27/0x40
[   13.044697]  [&lt;ffffffff81fd8f72&gt;] call_function_single_interrupt+0x72/0x80
[   13.044707]  &lt;EOI&gt;  [&lt;ffffffff81078166&gt;] ? native_safe_halt+0x6/0x10
[   13.044717]  [&lt;ffffffff811425cd&gt;] ? trace_hardirqs_on+0xd/0x10
[   13.044738]  [&lt;ffffffff8104f669&gt;] default_idle+0x59/0x120
[   13.044742]  [&lt;ffffffff810501e8&gt;] arch_cpu_idle+0x18/0x40
[   13.044754]  [&lt;ffffffff811320c5&gt;] cpu_startup_entry+0x235/0x410
[   13.044763]  [&lt;ffffffff81f9e781&gt;] rest_init+0xd1/0xe0
[   13.044766]  [&lt;ffffffff81f9e6b5&gt;] ? rest_init+0x5/0xe0
[   13.044778]  [&lt;ffffffff82b93ec2&gt;] start_kernel+0x425/0x493
[   13.044781]  [&lt;ffffffff82b93810&gt;] ? repair_env_string+0x5e/0x5e
[   13.044786]  [&lt;ffffffff82b93595&gt;] x86_64_start_reservations+0x2a/0x2c
[   13.044789]  [&lt;ffffffff82b93688&gt;] x86_64_start_kernel+0xf1/0x100
[   13.044799] ---[ end trace 113ad28772af4058 ]---

Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Maarten Lankhorst &lt;maarten.lankhorst@canonical.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/cirrus: deal with bo reserve fail in dirty update path</title>
<updated>2013-05-02T02:46:56Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2013-05-02T06:45:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f3b2bbdc8a87a080ccd23d27fca4b87d61340dd4'/>
<id>urn:sha1:f3b2bbdc8a87a080ccd23d27fca4b87d61340dd4</id>
<content type='text'>
Port over the mgag200 fix to cirrus as it suffers the same issue.

    On F19 testing, it was noticed we get a lot of errors in dmesg
    about being unable to reserve the buffer when plymouth starts,
    this is due to the buffer being in the process of migrating,
    so it makes sense we can't reserve it.

    In order to deal with it, this adds delayed updates for the dirty
    updates, when the bo is unreservable, in the normal console case
    this shouldn't ever happen, its just when plymouth or X is
    pushing the console bo to system memory.

Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
</feed>
