<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c, branch v4.12.9</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.12.9</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.12.9'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2017-05-25T16:53:25+00:00</updated>
<entry>
<title>drm/amdgpu: fix null point error when rmmod amdgpu.</title>
<updated>2017-05-25T16:53:25+00:00</updated>
<author>
<name>Rex Zhu</name>
<email>Rex.Zhu@amd.com</email>
</author>
<published>2017-05-22T05:11:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b62ce397675502325d4282924bf70cfb6a005c3a'/>
<id>urn:sha1:b62ce397675502325d4282924bf70cfb6a005c3a</id>
<content type='text'>
this bug happened when amdgpu load failed.

[   75.740951] BUG: unable to handle kernel paging request at 00000000000031c0
[   75.748167] IP: [&lt;ffffffffa064a0e0&gt;] amdgpu_fbdev_restore_mode+0x20/0x60 [amdgpu]
[   75.755774] PGD 0

[   75.759185] Oops: 0000 [#1] SMP
[   75.762408] Modules linked in: amdgpu(OE-) ttm(OE) drm_kms_helper(OE) drm(OE) i2c_algo_bit(E) fb_sys_fops(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) rpcsec_gss_krb5(E) nfsv4(E) nfs(E) fscache(E) eeepc_wmi(E) asus_wmi(E) sparse_keymap(E) intel_rapl(E) snd_hda_codec_hdmi(E) snd_hda_codec_realtek(E) snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_codec(E) snd_hda_core(E) x86_pkg_temp_thermal(E) intel_powerclamp(E) snd_hwdep(E) snd_pcm(E) snd_seq_midi(E) coretemp(E) kvm_intel(E) snd_seq_midi_event(E) snd_rawmidi(E) kvm(E) snd_seq(E) joydev(E) snd_seq_device(E) snd_timer(E) irqbypass(E) crct10dif_pclmul(E) crc32_pclmul(E) mei_me(E) ghash_clmulni_intel(E) snd(E) aesni_intel(E) mei(E) soundcore(E) aes_x86_64(E) shpchp(E) serio_raw(E) lrw(E) acpi_pad(E) gf128mul(E) glue_helper(E) ablk_helper(E) mac_hid(E)
[   75.835574]  cryptd(E) parport_pc(E) ppdev(E) lp(E) nfsd(E) parport(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) autofs4(E) hid_generic(E) usbhid(E) mxm_wmi(E) psmouse(E) e1000e(E) ptp(E) pps_core(E) ahci(E) libahci(E) wmi(E) video(E) i2c_hid(E) hid(E)
[   75.858489] CPU: 5 PID: 1603 Comm: rmmod Tainted: G           OE   4.9.0-custom #2
[   75.866183] Hardware name: System manufacturer System Product Name/Z170-A, BIOS 0901 08/31/2015
[   75.875050] task: ffff88045d1bbb80 task.stack: ffffc90002de4000
[   75.881094] RIP: 0010:[&lt;ffffffffa064a0e0&gt;]  [&lt;ffffffffa064a0e0&gt;] amdgpu_fbdev_restore_mode+0x20/0x60 [amdgpu]
[   75.891238] RSP: 0018:ffffc90002de7d48  EFLAGS: 00010286
[   75.896648] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000001
[   75.903933] RDX: 0000000000000000 RSI: ffff88045d1bbb80 RDI: 0000000000000286
[   75.911183] RBP: ffffc90002de7d50 R08: 0000000000000502 R09: 0000000000000004
[   75.918449] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880464bf0000
[   75.925675] R13: ffffffffa0853000 R14: 0000000000000000 R15: 0000564e44f88210
[   75.932980] FS:  00007f13d5400700(0000) GS:ffff880476540000(0000) knlGS:0000000000000000
[   75.941238] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   75.947088] CR2: 00000000000031c0 CR3: 000000045fd0b000 CR4: 00000000003406e0
[   75.954332] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   75.961566] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   75.968834] Stack:
[   75.970881]  ffff880464bf0000 ffffc90002de7d60 ffffffffa0636592 ffffc90002de7d80
[   75.978454]  ffffffffa059015f ffff880464bf0000 ffff880464bf0000 ffffc90002de7da8
[   75.986076]  ffffffffa0595216 ffff880464bf0000 ffff880460f4d000 ffffffffa0853000
[   75.993692] Call Trace:
[   75.996177]  [&lt;ffffffffa0636592&gt;] amdgpu_driver_lastclose_kms+0x12/0x20 [amdgpu]
[   76.003700]  [&lt;ffffffffa059015f&gt;] drm_lastclose+0x2f/0xd0 [drm]
[   76.009777]  [&lt;ffffffffa0595216&gt;] drm_dev_unregister+0x16/0xd0 [drm]
[   76.016255]  [&lt;ffffffffa0595944&gt;] drm_put_dev+0x34/0x70 [drm]
[   76.022139]  [&lt;ffffffffa062f365&gt;] amdgpu_pci_remove+0x15/0x20 [amdgpu]
[   76.028800]  [&lt;ffffffff81416499&gt;] pci_device_remove+0x39/0xc0
[   76.034661]  [&lt;ffffffff81531caa&gt;] __device_release_driver+0x9a/0x140
[   76.041121]  [&lt;ffffffff81531e58&gt;] driver_detach+0xb8/0xc0
[   76.046575]  [&lt;ffffffff81530c95&gt;] bus_remove_driver+0x55/0xd0
[   76.052401]  [&lt;ffffffff815325fc&gt;] driver_unregister+0x2c/0x50
[   76.058244]  [&lt;ffffffff81416289&gt;] pci_unregister_driver+0x29/0x90
[   76.064466]  [&lt;ffffffffa0596c5e&gt;] drm_pci_exit+0x9e/0xb0 [drm]
[   76.070507]  [&lt;ffffffffa0796d71&gt;] amdgpu_exit+0x1c/0x32 [amdgpu]
[   76.076609]  [&lt;ffffffff81104810&gt;] SyS_delete_module+0x1a0/0x200
[   76.082627]  [&lt;ffffffff810e2b1a&gt;] ? rcu_eqs_enter.isra.36+0x4a/0x50
[   76.089001]  [&lt;ffffffff8100392e&gt;] do_syscall_64+0x6e/0x180
[   76.094583]  [&lt;ffffffff817e1d2f&gt;] entry_SYSCALL64_slow_path+0x25/0x25
[   76.101114] Code: 94 c0 c3 31 c0 5d c3 0f 1f 40 00 0f 1f 44 00 00 55 31 c0 48 89 e5 53 48 89 fb 48 c7 c7 1d 21 84 a0 e8 ab 77 b3 e0 e8 fc 8b d7 e0 &lt;48&gt; 8b bb c0 31 00 00 48 85 ff 74 09 e8 ff eb fc ff 85 c0 75 03
[   76.121432] RIP  [&lt;ffffffffa064a0e0&gt;] amdgpu_fbdev_restore_mode+0x20/0x60 [amdgpu]

Signed-off-by: Rex Zhu &lt;Rex.Zhu@amd.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amdgpu: Make amdgpu_bo_reserve use uninterruptible waits for cleanup</title>
<updated>2017-04-28T21:33:16+00:00</updated>
<author>
<name>Michel Dänzer</name>
<email>michel.daenzer@amd.com</email>
</author>
<published>2017-04-28T08:28:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c81a1a74037f61c578f6b8218b079aa434e300b4'/>
<id>urn:sha1:c81a1a74037f61c578f6b8218b079aa434e300b4</id>
<content type='text'>
Some of these paths probably cannot be interrupted by a signal anyway.
Those that can would fail to clean up things if they actually got
interrupted.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Michel Dänzer &lt;michel.daenzer@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>gpu: drm: amd/radeon: Convert printk(KERN_&lt;LEVEL&gt; to pr_&lt;level&gt;</title>
<updated>2017-03-30T03:53:24+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2017-02-28T12:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7ca85295d8cc280ea79cf6250c47363b7fd92f92'/>
<id>urn:sha1:7ca85295d8cc280ea79cf6250c47363b7fd92f92</id>
<content type='text'>
Use a more common logging style.

Miscellanea:

o Coalesce formats and realign arguments
o Neaten a few macros now using pr_&lt;level&gt;

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amdgpu: clean framebuffer with GPU</title>
<updated>2017-03-30T03:52:40+00:00</updated>
<author>
<name>Pixel Ding</name>
<email>Pixel.Ding@amd.com</email>
</author>
<published>2017-01-24T03:39:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cbabc8b343953e7bc6d70b5a22aaebbd73ae9934'/>
<id>urn:sha1:cbabc8b343953e7bc6d70b5a22aaebbd73ae9934</id>
<content type='text'>
CPU is not efficient to clean framebuffer especially under
virtualization, then loading driver takes long time which causes
timeout of mailbox handshake.

Signed-off-by: Pixel Ding &lt;Pixel.Ding@amd.com&gt;
Reviewed-by: Edward O'Callaghan &lt;funfunctor@folklore1984.net&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/fb-helper: Automatically clean up fb_info</title>
<updated>2017-02-07T20:36:28+00:00</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2017-02-07T16:16:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=da7bdda2afdf1ae58546218b50771c2c646bb079'/>
<id>urn:sha1:da7bdda2afdf1ae58546218b50771c2c646bb079</id>
<content type='text'>
Noticed that everyone duplicates the same logic here and we could safe
a few lines per driver. Yay for lots of drivers to make such tiny
refactors worth-while!

v2: Forgot to git add everything :(

v3: Actually remove release_fbi (Sean, Emil, Chris) ...

Cc: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Sean Paul &lt;seanpaul@chromium.org&gt;
Cc: Noralf Trønnes &lt;noralf@tronnes.org&gt;
Cc: Emil Velikov &lt;emil.l.velikov@gmail.com&gt;
Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170207161603.17611-1-daniel.vetter@ffwll.ch
</content>
</entry>
<entry>
<title>drm: Rely on mode_config data for fb_helper initialization</title>
<updated>2017-02-02T18:12:00+00:00</updated>
<author>
<name>Gabriel Krisman Bertazi</name>
<email>krisman@collabora.co.uk</email>
</author>
<published>2017-02-02T16:26:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e4563f6ba71792c77aeccb2092cc23149b44e642'/>
<id>urn:sha1:e4563f6ba71792c77aeccb2092cc23149b44e642</id>
<content type='text'>
Instead of receiving the num_crts as a parameter, we can read it
directly from the mode_config structure.  I audited the drivers that
invoke this helper and I believe all of them initialize the mode_config
struct accordingly, prior to calling the fb_helper.

I used the following coccinelle hack to make this transformation, except
for the function headers and comment updates.  The first and second
rules are split because I couldn't find a way to remove the unused
temporary variables at the same time I removed the parameter.

// &lt;smpl&gt;
@r@
expression A,B,D,E;
identifier C;
@@
(
- drm_fb_helper_init(A,B,C,D)
+ drm_fb_helper_init(A,B,D)
|
- drm_fbdev_cma_init_with_funcs(A,B,C,D,E)
+ drm_fbdev_cma_init_with_funcs(A,B,D,E)
|
- drm_fbdev_cma_init(A,B,C,D)
+ drm_fbdev_cma_init(A,B,D)
)

@@
expression A,B,C,D,E;
@@
(
- drm_fb_helper_init(A,B,C,D)
+ drm_fb_helper_init(A,B,D)
|
- drm_fbdev_cma_init_with_funcs(A,B,C,D,E)
+ drm_fbdev_cma_init_with_funcs(A,B,D,E)
|
- drm_fbdev_cma_init(A,B,C,D)
+ drm_fbdev_cma_init(A,B,D)
)

@@
identifier r.C;
type T;
expression V;
@@
- T C;
&lt;...
when != C
- C = V;
...&gt;
// &lt;/smpl&gt;

Changes since v1:
 - Rebased on top of the tip of drm-misc-next.
 - Remove mention to sti since a proper fix got merged.

Suggested-by: Daniel Vetter &lt;daniel.vetter@intel.com&gt;
Signed-off-by: Gabriel Krisman Bertazi &lt;krisman@collabora.co.uk&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20170202162640.27261-1-krisman@collabora.co.uk
</content>
</entry>
<entry>
<title>drm: Nuke fb-&gt;depth</title>
<updated>2016-12-15T12:55:33+00:00</updated>
<author>
<name>Ville Syrjälä</name>
<email>ville.syrjala@linux.intel.com</email>
</author>
<published>2016-12-14T21:31:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b00c600e91531df00aaa551049382416c4db745d'/>
<id>urn:sha1:b00c600e91531df00aaa551049382416c4db745d</id>
<content type='text'>
Replace uses of fb-&gt;depth with fb-&gt;format-&gt;depth. Less duplicate
information is a good thing.

@@
struct drm_framebuffer *fb;
expression E;
@@
 drm_helper_mode_fill_fb_struct(...) {
	...
-	fb-&gt;depth = E;
	...
 }

@@
struct nouveau_framebuffer *fb;
@@
- fb-&gt;base.depth
+ fb-&gt;base.format-&gt;depth

@@
struct drm_framebuffer fb;
@@
- fb.depth
+ fb.format-&gt;depth

@@
struct drm_framebuffer *fb;
@@
- fb-&gt;depth
+ fb-&gt;format-&gt;depth

@@
struct drm_framebuffer fb;
@@
- (fb.format-&gt;depth)
+ fb.format-&gt;depth

@@
struct drm_framebuffer *fb;
@@
- (fb-&gt;format-&gt;depth)
+ fb-&gt;format-&gt;depth

@@
@@
 struct drm_framebuffer {
	 ...
-	 unsigned int depth;
	 ...
 };

v2: Drop the vmw stuff (Daniel)
    Rerun spatch due to code changes

Signed-off-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Reviewed-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1481751095-18249-1-git-send-email-ville.syrjala@linux.intel.com
</content>
</entry>
<entry>
<title>drm/amdgpu: use pin rather than pin_restricted in a few cases</title>
<updated>2016-12-08T19:12:19+00:00</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2016-12-07T21:14:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7fe285769cf64ff3029eed01ba4e1c020cf0db10'/>
<id>urn:sha1:7fe285769cf64ff3029eed01ba4e1c020cf0db10</id>
<content type='text'>
We don't require a resticted pinning in these cases, so just
use plain pin.

Reviewed-by: Edward O'Callaghan &lt;funfunctor@folklore1984.net&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/amdgpu: use DRM_FB_HELPER_DEFAULT_OPS for fb_ops</title>
<updated>2016-11-14T06:54:04+00:00</updated>
<author>
<name>Stefan Christ</name>
<email>contact@stefanchrist.eu</email>
</author>
<published>2016-11-13T23:03:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ea4ffffea3d7596528a400f9feb94fdb1f2b42bb'/>
<id>urn:sha1:ea4ffffea3d7596528a400f9feb94fdb1f2b42bb</id>
<content type='text'>
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Stefan Christ &lt;contact@stefanchrist.eu&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1479078208-25221-4-git-send-email-contact@stefanchrist.eu
</content>
</entry>
<entry>
<title>drm/amdgpu: add AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS flag v3</title>
<updated>2016-10-25T18:38:13+00:00</updated>
<author>
<name>Christian König</name>
<email>christian.koenig@amd.com</email>
</author>
<published>2016-08-15T15:00:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=03f48dd5d2085b978353a804635b6d34e77a5635'/>
<id>urn:sha1:03f48dd5d2085b978353a804635b6d34e77a5635</id>
<content type='text'>
Add a flag noting that a BO must be created using linear VRAM
and set this flag on all in kernel users where appropriate.

Hopefully I haven't missed anything.

v2: add it in a few more places, fix CPU mapping.
v3: rename to VRAM_CONTIGUOUS, fix typo in CS code.

Signed-off-by: Christian König &lt;christian.koenig@amd.com&gt;
Reviewed-by: Edward O'Callaghan &lt;funfunctor@folklore1984.net&gt;
Tested-by: Mike Lothian &lt;mike@fireburn.co.uk&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
</feed>
