<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpu/drm/arm, branch v4.9</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.9</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.9'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-11-25T15:51:57Z</updated>
<entry>
<title>drm: hdlcd: Fix cleanup order</title>
<updated>2016-11-25T15:51:57Z</updated>
<author>
<name>Robin Murphy</name>
<email>robin.murphy@arm.com</email>
</author>
<published>2016-11-24T14:40:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=747e5a5ff2a2ae84715c33d6679ac3c5220a3aec'/>
<id>urn:sha1:747e5a5ff2a2ae84715c33d6679ac3c5220a3aec</id>
<content type='text'>
If hdlcd_drm_bind() fails at drm_fbdev_cma_init(), its cleanup will call
drm_mode_config_cleanup() as if to balance drm_mode_config_reset(). The
net result is that drm_connector_cleanup() will clean up the active
connectors long before component_unbind_all() gets called, so when the
connector later tries to clean up itself after being unbound, Bad Things
can happen:

[    4.121888] Unable to handle kernel NULL pointer dereference at
virtual address 00000000
[    4.129951] pgd = ffffff80091e0000
[    4.133345] [00000000] *pgd=00000009ffffe003, *pud=00000009ffffe003,
*pmd=0000000000000000
[    4.141613] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[    4.147144] Modules linked in:
[    4.150188] CPU: 0 PID: 122 Comm: kworker/u12:2 Not tainted
4.8.0-rc2+ #989
[    4.157097] Hardware name: ARM Juno development board (r1) (DT)
[    4.162981] Workqueue: deferwq deferred_probe_work_func
[    4.168173] task: ffffffc975d93200 task.stack: ffffffc975dac000
[    4.174055] PC is at drm_connector_cleanup+0x58/0x1c0
[    4.179074] LR is at tda998x_unbind+0x24/0x40
[    4.183401] pc : [&lt;ffffff80084c46f0&gt;] lr : [&lt;ffffff800850414c&gt;]
pstate: 00000045
[    4.190750] sp : ffffffc975dafa10
[    4.194041] x29: ffffffc975dafa10 x28: ffffffc9768152a8
[    4.199325] x27: ffffffc97ff46450 x26: ffffff8008d99000
[    4.204608] x25: dead000000000100 x24: dead000000000200
[    4.209891] x23: ffffffc976bf91e8 x22: 0000000000000000
[    4.215172] x21: ffffffc976bf9170 x20: ffffffc976bf9170
[    4.220454] x19: ffffffc976bf9018 x18: 0000000000000000
[    4.225737] x17: 0000000074ce71ee x16: 000000008ff5d35f
[    4.231019] x15: ffffffc97681e91c x14: ffffffffffffffff
[    4.236301] x13: ffffffc97681e185 x12: 0000000000000038
[    4.241583] x11: 0101010101010101 x10: 0000000000000000
[    4.246866] x9 : 0000000040000000 x8 : 0000000000210d00
[    4.252148] x7 : ffffffc97fea8c00 x6 : 000000000000001b
[    4.257430] x5 : ffffff80084b7b8c x4 : 0000000000000080
[    4.262712] x3 : ffffff8008504128 x2 : ffffffc975df3800
[    4.267993] x1 : 0000000000000000 x0 : 0000000000000000
...
[    4.750937] [&lt;ffffff80084c46f0&gt;] drm_connector_cleanup+0x58/0x1c0
[    4.756990] [&lt;ffffff800850414c&gt;] tda998x_unbind+0x24/0x40
[    4.762354] [&lt;ffffff8008507918&gt;] component_unbind.isra.4+0x28/0x50
[    4.768492] [&lt;ffffff8008507a0c&gt;] component_unbind_all+0xcc/0xd8
[    4.774373] [&lt;ffffff80084d5adc&gt;] hdlcd_drm_bind+0x234/0x418
[    4.779909] [&lt;ffffff8008507b58&gt;] try_to_bring_up_master+0x140/0x1a0
[    4.786133] [&lt;ffffff8008507c50&gt;] component_add+0x98/0x170
[    4.791496] [&lt;ffffff8008504b90&gt;] tda998x_probe+0x18/0x20
[    4.796774] [&lt;ffffff80086bf914&gt;] i2c_device_probe+0x164/0x258
[    4.802481] [&lt;ffffff800850d094&gt;] driver_probe_device+0x204/0x2b0
[    4.808447] [&lt;ffffff800850d28c&gt;] __device_attach_driver+0x9c/0xf8
[    4.814498] [&lt;ffffff800850b108&gt;] bus_for_each_drv+0x58/0x98
[    4.820033] [&lt;ffffff800850cd64&gt;] __device_attach+0xc4/0x138
[    4.825567] [&lt;ffffff800850d338&gt;] device_initial_probe+0x10/0x18
[    4.831446] [&lt;ffffff800850c124&gt;] bus_probe_device+0x94/0xa0
[    4.836981] [&lt;ffffff800850c5b0&gt;] deferred_probe_work_func+0x78/0xb0
[    4.843207] [&lt;ffffff80080d2998&gt;] process_one_work+0x118/0x378
[    4.848914] [&lt;ffffff80080d2c40&gt;] worker_thread+0x48/0x498
[    4.854276] [&lt;ffffff80080d8918&gt;] kthread+0xd0/0xe8
[    4.859036] [&lt;ffffff8008082e90&gt;] ret_from_fork+0x10/0x40
[    4.864314] Code: f2fbd5b9 f2fbd5b8 f8478ee0 eb17001f (f9400013)
[    4.870472] ---[ end trace a643cfe4ce1d838b ]---

Fix this by moving the drm_mode_config_cleanup() much later such that it
correctly balances drm_mode_config_init().

Suggested-by: Russell King &lt;linux@armlinux.org.uk&gt;
Signed-off-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
<entry>
<title>drm/arm: hdlcd: fix plane base address update</title>
<updated>2016-11-22T14:09:06Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@armlinux.org.uk</email>
</author>
<published>2016-11-22T13:56:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7a79279e7186c4ac8b753cbd335ecc4ba81b5970'/>
<id>urn:sha1:7a79279e7186c4ac8b753cbd335ecc4ba81b5970</id>
<content type='text'>
While testing HDMI with Xorg on the Juno board, I find that when Xorg
starts up or shuts down, the display is shifted significantly to the
right and wrapped in the active region.  (No sync bars are visible.)
The timings are correct, it behaves as if the start address has been
shifted many pixels _into_ the framebuffer.

This occurs whenever the display mode size is changed - using xrandr
in Xorg shows that changing the resolution triggers the problem
almost every time, but changing the refresh rate does not.

Using devmem2 to disable and re-enable the HDLCD resolves the issue,
and repeated disable/enable cycles do not make the issue re-appear.
Further debugging shows that we try to update the controller
configuration while enabled.

Alwys ensure that the HDLCD is disabled prior to updating the
controller timings, and use drm_crtc_vblank_off()/drm_crtc_vblank_on()
so that DRM knows whether it can expect vblank interrupts.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
<entry>
<title>drm: Don't swallow error codes in drm_dev_alloc()</title>
<updated>2016-09-22T11:03:48Z</updated>
<author>
<name>Tom Gundersen</name>
<email>teg@jklm.no</email>
</author>
<published>2016-09-21T14:59:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0f2886057be322ddfa4858384c40a505f7a32a4a'/>
<id>urn:sha1:0f2886057be322ddfa4858384c40a505f7a32a4a</id>
<content type='text'>
There are many reasons other than ENOMEM that drm_dev_init() can
fail. Return ERR_PTR rather than NULL to be able to distinguish
these in the caller.

Signed-off-by: Tom Gundersen &lt;teg@jklm.no&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/20160921145919.13754-2-teg@jklm.no
</content>
</entry>
<entry>
<title>drm/atomic-helper: Add NO_DISABLE_AFTER_MODESET flag support for plane commit</title>
<updated>2016-08-29T09:29:37Z</updated>
<author>
<name>Liu Ying</name>
<email>gnuiyl@gmail.com</email>
</author>
<published>2016-08-29T09:12:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2b58e98d42af854037439f51bd89f83dbfa8e30d'/>
<id>urn:sha1:2b58e98d42af854037439f51bd89f83dbfa8e30d</id>
<content type='text'>
Drivers may set the NO_DISABLE_AFTER_MODESET flag in the 'flags' parameter
of the helper drm_atomic_helper_commit_planes() if the relevant display
controllers(e.g., IPUv3 for imx-drm) require to disable a CRTC's planes
when the CRTC is disabled. The helper would skip the -&gt;atomic_disable
call for a plane if the CRTC of the old plane state needs a modesetting
operation. Of course, the drivers need to disable the planes in their CRTC
disable callbacks since no one else would do that.

Suggested-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: Russell King &lt;linux@armlinux.org.uk&gt;
Cc: Peter Senna Tschudin &lt;peter.senna@gmail.com&gt;
Cc: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Signed-off-by: Liu Ying &lt;gnuiyl@gmail.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1472461923-14364-1-git-send-email-gnuiyl@gmail.com
</content>
</entry>
<entry>
<title>drm: BIT(DRM_ROTATE_?) -&gt; DRM_ROTATE_?</title>
<updated>2016-08-08T18:17:56Z</updated>
<author>
<name>Joonas Lahtinen</name>
<email>joonas.lahtinen@linux.intel.com</email>
</author>
<published>2016-07-29T05:50:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=31ad61e4afa53a7b2e364f7c021546fbc6ce0d85'/>
<id>urn:sha1:31ad61e4afa53a7b2e364f7c021546fbc6ce0d85</id>
<content type='text'>
Only property creation uses the rotation as an index, so convert the
to figure the index when needed.

v2: Use the new defines to build the _MASK defines (Sean)

Cc: intel-gfx@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org
Cc: freedreno@lists.freedesktop.org
Cc: malidp@foss.arm.com
Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Cc: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Cc: Sean Paul &lt;seanpaul@chromium.org&gt;
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Reviewed-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt; (v1)
Signed-off-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1469771405-17653-1-git-send-email-joonas.lahtinen@linux.intel.com
</content>
</entry>
<entry>
<title>drm/arm: mali-dp: Fix error return code in malidp_bind()</title>
<updated>2016-07-28T10:59:56Z</updated>
<author>
<name>Wei Yongjun</name>
<email>weiyj.lk@gmail.com</email>
</author>
<published>2016-07-28T02:14:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=12ae57aab43880eac500c43590e26d9d4411961b'/>
<id>urn:sha1:12ae57aab43880eac500c43590e26d9d4411961b</id>
<content type='text'>
Fix to return error code -EINVAL from the error handling
case instead of 0, as done elsewhere in this function.

Fixes: 3c31760e760c ('drm/arm: mali-dp: Set crtc.port to the port
instead of the endpoint')
Signed-off-by: Wei Yongjun &lt;weiyj.lk@gmail.com&gt;
Acked-by: Brian Starkey &lt;brian.starkey@arm.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1469672066-13401-1-git-send-email-weiyj.lk@gmail.com
</content>
</entry>
<entry>
<title>drm/arm: mali-dp: Remove redundant dev_err call in malidp_bind()</title>
<updated>2016-07-28T10:59:12Z</updated>
<author>
<name>Wei Yongjun</name>
<email>weiyj.lk@gmail.com</email>
</author>
<published>2016-07-28T02:09:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1a9d71f84c8d6f981bc598398ddbbec4ee25e3c7'/>
<id>urn:sha1:1a9d71f84c8d6f981bc598398ddbbec4ee25e3c7</id>
<content type='text'>
There is a error message within devm_ioremap_resource
already, so remove the DRM_ERROR call to avoid redundant
error message.

Signed-off-by: Wei Yongjun &lt;weiyj.lk@gmail.com&gt;
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1469671753-12961-1-git-send-email-weiyj.lk@gmail.com
</content>
</entry>
<entry>
<title>drm/arm: mali-dp: Set crtc.port to the port instead of the endpoint</title>
<updated>2016-07-26T17:23:58Z</updated>
<author>
<name>Brian Starkey</name>
<email>brian.starkey@arm.com</email>
</author>
<published>2016-07-26T16:15:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3c31760e760c87eaa5fbcbb90d54ccab576429c8'/>
<id>urn:sha1:3c31760e760c87eaa5fbcbb90d54ccab576429c8</id>
<content type='text'>
The CRTC's port pointer was being set to the endpoint node instead of
the port. Fix that, and hold a reference on the port node.

Signed-off-by: Brian Starkey &lt;brian.starkey@arm.com&gt;
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1469549725-19577-1-git-send-email-brian.starkey@arm.com
</content>
</entry>
<entry>
<title>drm/arm: make fbdev support really optional</title>
<updated>2016-07-18T07:11:42Z</updated>
<author>
<name>Tobias Jakobi</name>
<email>tjakobi@math.uni-bielefeld.de</email>
</author>
<published>2016-07-15T12:48:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f39c9096d611a904ee5f8eb1bd6943e68a071b74'/>
<id>urn:sha1:f39c9096d611a904ee5f8eb1bd6943e68a071b74</id>
<content type='text'>
Currently enabling ARM HDLCD DRM support automatically pulls
in fbdev dependency. However this dep is unnecessary since
DRM core already handles this for us (DRM_FBDEV_EMULATION).

Signed-off-by: Tobias Jakobi &lt;tjakobi@math.uni-bielefeld.de&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1468586897-32298-21-git-send-email-tjakobi@math.uni-bielefeld.de
</content>
</entry>
<entry>
<title>drm/hdlcd: Delete an unnecessary check before drm_fbdev_cma_hotplug_event()</title>
<updated>2016-07-18T07:11:31Z</updated>
<author>
<name>Markus Elfring</name>
<email>elfring@users.sourceforge.net</email>
</author>
<published>2016-07-16T07:10:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=536cea6073381aa9ace9743cd94e77d80018e3ee'/>
<id>urn:sha1:536cea6073381aa9ace9743cd94e77d80018e3ee</id>
<content type='text'>
The drm_fbdev_cma_hotplug_event() function tests whether its argument
is NULL and then returns immediately.
Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring &lt;elfring@users.sourceforge.net&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/c2b0f310-fa06-f4cc-0014-ea7f40564d26@users.sourceforge.net
</content>
</entry>
</feed>
