<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/mgag200, branch v4.4.197</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.4.197</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.4.197'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2018-09-09T18:04:36+00:00</updated>
<entry>
<title>drm/drivers: add support for using the arch wc mapping API.</title>
<updated>2018-09-09T18:04:36+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-10-24T05:37:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c59fdc4cfbda52ce081c59540762185d765c3369'/>
<id>urn:sha1:c59fdc4cfbda52ce081c59540762185d765c3369</id>
<content type='text'>
commit 7cf321d118a825c1541b43ca45294126fd474efa upstream.

This fixes a regression in all these drivers since the cache
mode tracking was fixed for mixed mappings. It uses the new
arch API to add the VRAM range to the PAT mapping tracking
tables.

Fixes: 87744ab3832 (mm: fix cache mode tracking in vm_insert_mixed())
Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;.
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Cc: Ben Hutchings &lt;ben.hutchings@codethink.co.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>gpu: drm: mgag200: mgag200_main:- Handle error from pci_iomap</title>
<updated>2017-11-21T08:21:21+00:00</updated>
<author>
<name>Arvind Yadav</name>
<email>arvind.yadav.cs@gmail.com</email>
</author>
<published>2017-01-03T11:30:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b1e8e6d4c06547ad6f1864eefef70ce8e6dbb463'/>
<id>urn:sha1:b1e8e6d4c06547ad6f1864eefef70ce8e6dbb463</id>
<content type='text'>
[ Upstream commit 4b0ea93f250afc6c1128e201b0a8a115ae613e47 ]

Here, pci_iomap can fail, handle this case and return -ENOMEM.

Signed-off-by: Arvind Yadav &lt;arvind.yadav.cs@gmail.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1483443027-13444-1-git-send-email-arvind.yadav.cs@gmail.com
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/mgag200: Black screen fix for G200e rev 4</title>
<updated>2016-07-27T16:47:32+00:00</updated>
<author>
<name>Mathieu Larouche</name>
<email>mathieu.larouche@matrox.com</email>
</author>
<published>2016-05-27T19:12:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=084ad7f71e15e7f96d7dfe1ea1a438ae8b709255'/>
<id>urn:sha1:084ad7f71e15e7f96d7dfe1ea1a438ae8b709255</id>
<content type='text'>
commit d3922b69617b62bb2509936b68301f837229d9f0 upstream.

- Fixed black screen for some resolutions of G200e rev4
- Fixed testm &amp; testn which had predetermined value.

Reported-by: Jan Beulich &lt;jbeulich@suse.com&gt;

Signed-off-by: Mathieu Larouche &lt;mathieu.larouche@matrox.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/mgag200: fix kernel hang in cursor code.</title>
<updated>2015-11-19T03:20:01+00:00</updated>
<author>
<name>Wang, Rui Y</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2015-11-18T15:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f6619ef7508261be2ba3ded313ccc46ce670d0d3'/>
<id>urn:sha1:f6619ef7508261be2ba3ded313ccc46ce670d0d3</id>
<content type='text'>
The machine hang completely with the following message on the console:

[  487.777538] BUG: unable to handle kernel NULL pointer dereference at 0000000000000060
[  487.777554] IP: [&lt;ffffffff8158aaee&gt;] _raw_spin_lock+0xe/0x30
[  487.777557] PGD 42e9f7067 PUD 42f2fa067 PMD 0
[  487.777560] Oops: 0002 [#1] SMP
...
[  487.777618] CPU: 21 PID: 3190 Comm: Xorg Tainted: G            E   4.4.0-rc1-3-default+ #6
[  487.777620] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRHSXSD1.86B.0059.R00.1501081238 01/08/2015
[  487.777621] task: ffff880853ae4680 ti: ffff8808696d4000 task.ti: ffff8808696d4000
[  487.777625] RIP: 0010:[&lt;ffffffff8158aaee&gt;]  [&lt;ffffffff8158aaee&gt;] _raw_spin_lock+0xe/0x30
[  487.777627] RSP: 0018:ffff8808696d79c0  EFLAGS: 00010246
[  487.777628] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
[  487.777629] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000060
[  487.777630] RBP: ffff8808696d79e0 R08: 0000000000000000 R09: ffff88086924a780
[  487.777631] R10: 000000000001bb40 R11: 0000000000003246 R12: 0000000000000000
[  487.777632] R13: ffff880463a27360 R14: ffff88046ca50218 R15: 0000000000000080
[  487.777634] FS:  00007f3f81c5a8c0(0000) GS:ffff88086f060000(0000) knlGS:0000000000000000
[  487.777635] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  487.777636] CR2: 0000000000000060 CR3: 000000042e678000 CR4: 00000000001406e0
[  487.777638] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  487.777639] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  487.777639] Stack:
[  487.777642]  ffffffffa00eb5fa ffff8808696d7b60 ffff88086b87d800 0000000000000000
[  487.777644]  ffff8808696d7ac8 ffffffffa01694b6 ffff8808696d7ae8 ffffffff8109c8d5
[  487.777647]  ffff880469158740 ffff880463a27000 ffff88086b87d800 ffff88086b87d800
[  487.777647] Call Trace:
[  487.777674]  [&lt;ffffffffa00eb5fa&gt;] ? drm_gem_object_lookup+0x1a/0xa0 [drm]
[  487.777681]  [&lt;ffffffffa01694b6&gt;] mga_crtc_cursor_set+0xc6/0xb60 [mgag200]
[  487.777691]  [&lt;ffffffff8109c8d5&gt;] ? find_busiest_group+0x35/0x4a0
[  487.777696]  [&lt;ffffffff81086294&gt;] ? __might_sleep+0x44/0x80
[  487.777699]  [&lt;ffffffff815888c2&gt;] ? __ww_mutex_lock+0x22/0x9c
[  487.777722]  [&lt;ffffffffa0104f64&gt;] ? drm_modeset_lock+0x34/0xf0 [drm]
[  487.777733]  [&lt;ffffffffa0148d9e&gt;] restore_fbdev_mode+0xee/0x2a0 [drm_kms_helper]
[  487.777742]  [&lt;ffffffffa014afce&gt;] drm_fb_helper_restore_fbdev_mode_unlocked+0x2e/0x70 [drm_kms_helper]
[  487.777748]  [&lt;ffffffffa014b037&gt;] drm_fb_helper_set_par+0x27/0x50 [drm_kms_helper]
[  487.777752]  [&lt;ffffffff8134560c&gt;] fb_set_var+0x18c/0x3f0
[  487.777777]  [&lt;ffffffffa02a9b0a&gt;] ? __ext4_handle_dirty_metadata+0x8a/0x210 [ext4]
[  487.777783]  [&lt;ffffffff8133cb97&gt;] fbcon_blank+0x1b7/0x2b0
[  487.777790]  [&lt;ffffffff813be2a3&gt;] do_unblank_screen+0xb3/0x1c0
[  487.777795]  [&lt;ffffffff813b5aba&gt;] vt_ioctl+0x118a/0x1210
[  487.777801]  [&lt;ffffffff813a8fe0&gt;] tty_ioctl+0x3f0/0xc90
[  487.777808]  [&lt;ffffffff81172018&gt;] ? kzfree+0x28/0x30
[  487.777813]  [&lt;ffffffff811e053f&gt;] ? mntput+0x1f/0x30
[  487.777817]  [&lt;ffffffff811d3f5d&gt;] do_vfs_ioctl+0x30d/0x570
[  487.777822]  [&lt;ffffffff8107ed3a&gt;] ? task_work_run+0x8a/0xa0
[  487.777825]  [&lt;ffffffff811d4234&gt;] SyS_ioctl+0x74/0x80
[  487.777829]  [&lt;ffffffff8158aeae&gt;] entry_SYSCALL_64_fastpath+0x12/0x71
[  487.777851] Code: 65 ff 0d ce 02 a8 7e 5d c3 ba 01 00 00 00 f0 0f b1 17 85 c0 75 e8 b0 01 5d c3 0f 1f 00 65 ff 05 b1 02 a8 7e 31 c0 ba 01 00 00 00 &lt;f0&gt; 0f b1 17 85 c0 75 01 c3 55 89 c6 48 89 e5 e8 4e f5 b1 ff 5d
[  487.777854] RIP  [&lt;ffffffff8158aaee&gt;] _raw_spin_lock+0xe/0x30
[  487.777855]  RSP &lt;ffff8808696d79c0&gt;
[  487.777856] CR2: 0000000000000060
[  487.777860] ---[ end trace 672a2cd555e0ebd3 ]---

The cursor code may be entered with file_priv == NULL &amp;&amp; handle == NULL.
The problem was introduced by:

"bf89209 drm/mga200g: Hold a proper reference for cursor_set"

which calls drm_gem_object_lookup(dev, file_priv...). Previously this wasn't
a problem because we checked the handle. Move the check early in the function
can fix the problem.

Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mgag200: Fix driver_load error handling</title>
<updated>2015-09-23T22:10:44+00:00</updated>
<author>
<name>Archit Taneja</name>
<email>architt@codeaurora.org</email>
</author>
<published>2015-09-17T11:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=728f86607d47f7d2d24d61fd30852faa66ca5aa9'/>
<id>urn:sha1:728f86607d47f7d2d24d61fd30852faa66ca5aa9</id>
<content type='text'>
mgag200_driver_load's error path just calls the drm driver's
driver_unload op. It isn't safe to call this because it doesn't handle
things well if driver_load fails somewhere mid way.

Replace the call to mgag200_driver_unload with a more finegrained
error handling path.

Link: http://lkml.kernel.org/r/55F6E68D.8070800@codeaurora.org
Reported-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Dave Airlie &lt;airlied@gmail.com&gt;
Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Sudip Mukherjee &lt;sudipm.mukherjee@gmail.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: dri-devel &lt;dri-devel@lists.freedesktop.org&gt;
Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mgag200: Fix error handling paths in fbdev driver</title>
<updated>2015-09-23T22:10:41+00:00</updated>
<author>
<name>Archit Taneja</name>
<email>architt@codeaurora.org</email>
</author>
<published>2015-09-17T11:00:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=aec9e12953e777f62acdab069656ebd9bcb6c9ba'/>
<id>urn:sha1:aec9e12953e777f62acdab069656ebd9bcb6c9ba</id>
<content type='text'>
Set up error handling in mgag200_fbdev_init and mgag200fb_create such that
they release the things they allocate, rather than relying on someone
calling mga_fbdev_destroy.

Based on a patch by Sudip Mukherjee &lt;sudipm.mukherjee@gmail.com&gt;

Link: http://lkml.kernel.org/r/55F6E68D.8070800@codeaurora.org
Reported-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Dave Airlie &lt;airlied@gmail.com&gt;
Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Sudip Mukherjee &lt;sudipm.mukherjee@gmail.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: dri-devel &lt;dri-devel@lists.freedesktop.org&gt;
Signed-off-by: Archit Taneja &lt;architt@codeaurora.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mgag200: Add support for a new rev of G200e</title>
<updated>2015-08-24T03:47:16+00:00</updated>
<author>
<name>Mathieu Larouche</name>
<email>mathieu.larouche@matrox.com</email>
</author>
<published>2015-08-21T13:24:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e829d7ef9f17d7b84d4c3d110ecd4b7b2bcba865'/>
<id>urn:sha1:e829d7ef9f17d7b84d4c3d110ecd4b7b2bcba865</id>
<content type='text'>
- Added PLL algorithm for a new rev of G200e
- Removed the bandwidth limitation for the new G200e

Signed-off-by: Mathieu Larouche &lt;mathieu.larouche@matrox.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mgag200: Add support for a new G200eW3 chipset</title>
<updated>2015-08-24T03:46:52+00:00</updated>
<author>
<name>Mathieu Larouche</name>
<email>mathieu.larouche@matrox.com</email>
</author>
<published>2015-08-21T13:24:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6d857c18aefdec782ba1db578a390fbac5145107'/>
<id>urn:sha1:6d857c18aefdec782ba1db578a390fbac5145107</id>
<content type='text'>
- Added support for the new deviceID for G200eW3
- Added PLL algorithm for the G200eW3
- Added some initialization code for G200eW3

Signed-off-by: Mathieu Larouche &lt;mathieu.larouche@matrox.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mga200g: Hold a proper reference for cursor_set</title>
<updated>2015-08-10T11:37:20+00:00</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2015-07-09T21:32:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bf89209a6de37074e3ccdb7b40500798de750698'/>
<id>urn:sha1:bf89209a6de37074e3ccdb7b40500798de750698</id>
<content type='text'>
Looking up an obj, immediate dropping the acquired reference and then
continuing to use it isn't how this is supposed to work. Fix this by
holding a reference for the entire function.

While at it stop grabbing dev-&gt;struct_mutex, it doesn't protect
anything here.

Reviewed-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/mga200g: Don't grab dev-&gt;struct_mutex for in mmap offset ioctl</title>
<updated>2015-08-10T11:37:12+00:00</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2015-07-09T21:32:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=34c294f5a6c0dca7fb75ddc1be3ec8974b24455f'/>
<id>urn:sha1:34c294f5a6c0dca7fb75ddc1be3ec8974b24455f</id>
<content type='text'>
Since David Herrmann's mmap vma manager rework we don't need to grab
dev-&gt;struct_mutex any more to prevent races when looking up the mmap
offset. Drop it and instead don't forget to use the unref_unlocked
variant (since the drm core still cares).

Reviewed-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
</content>
</entry>
</feed>
