<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/arm, branch v4.10.9</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.10.9</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.10.9'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-12-05T07:11:48+00:00</updated>
<entry>
<title>Backmerge tag 'v4.9-rc8' into drm-next</title>
<updated>2016-12-05T07:11:48+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-12-05T07:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f03ee46be9401e3434f52bb15e92d1e640f76438'/>
<id>urn:sha1:f03ee46be9401e3434f52bb15e92d1e640f76438</id>
<content type='text'>
Linux 4.9-rc8

Daniel requested this so we could apply some follow on fixes cleanly to -next.
</content>
</entry>
<entry>
<title>drm: hdlcd: Fix cleanup order</title>
<updated>2016-11-25T15:51:57+00:00</updated>
<author>
<name>Robin Murphy</name>
<email>robin.murphy@arm.com</email>
</author>
<published>2016-11-24T14:40:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/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:06+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@armlinux.org.uk</email>
</author>
<published>2016-11-22T13:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/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>Merge branch 'drm-tda998x-mali' of git://git.armlinux.org.uk/~rmk/linux-arm into drm-next</title>
<updated>2016-11-16T22:55:26+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-11-16T22:55:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=25bfe018c1c57955e763ebfa2c1fa54283e426e9'/>
<id>urn:sha1:25bfe018c1c57955e763ebfa2c1fa54283e426e9</id>
<content type='text'>
Fix conncector registration with tda998x.

* 'drm-tda998x-mali' of git://git.armlinux.org.uk/~rmk/linux-arm:
  drm/i2c: tda998x: mali-dp: hdlcd: refactor connector registration
</content>
</entry>
<entry>
<title>Merge branch 'for-upstream/mali-dp' of git://linux-arm.org/linux-ld into drm-next</title>
<updated>2016-11-11T00:00:58+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-11-11T00:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c765102a2399fd2d47fa3bf8da268431ab913355'/>
<id>urn:sha1:c765102a2399fd2d47fa3bf8da268431ab913355</id>
<content type='text'>
Here is the list of fixes that I have for drm/mali-dp. They've been on the mailing
lists for a while and merged into linux-next for a few weeks, but due to holiday and
travel to Linux Plumbers I did not send the pull request earlier. I don't know if
these patches can be pulled into v4.9 still (they will conflict with Ville Syrjälä's
cleanup of DRM_ROTATE series that is already in drm-next), but if you do that would
be great.

* 'for-upstream/mali-dp' of git://linux-arm.org/linux-ld:
  drm: mali-dp: Clear CVAL when leaving config mode
  drm/arm: mark symbols static where possible
  drm: mali-dp: Add support for setting plane's rotation property from userspace.
  drm: mali-dp: Don't set DRM_PLANE_COMMIT_ACTIVE_ONLY
  drm: mali-dp: Store internal format and n_planes in plane state
  drm: mali-dp: Enable alpha blending
  drm: mali-dp: Refactor plane initialisation
  arm: mali-dp: Extract mode_config cleanup into malidp_fini
  drm: mali-dp: Add pitch alignment check for planes
  drm: mali-dp: Add pitch alignment check function
  drm: mali-dp: Set the drm-&gt;irq_enabled flag to match driver's state.
  drm: mali-dp: Clear the config_valid flag before using it in wait_event.
</content>
</entry>
<entry>
<title>drm: mali-dp: Clear CVAL when leaving config mode</title>
<updated>2016-11-08T11:40:02+00:00</updated>
<author>
<name>Brian Starkey</name>
<email>brian.starkey@arm.com</email>
</author>
<published>2016-11-08T11:36:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e64053f05eb924db45f90a1556a200d1acb4b01e'/>
<id>urn:sha1:e64053f05eb924db45f90a1556a200d1acb4b01e</id>
<content type='text'>
It's possible for CVAL to get set whilst we are in config mode. If this
happens, afer we leave config mode the HW will latch whatever
configuration is in the registers at the next vsync. Most likely this
will be a partial configuration, as we'll be racing against the ongoing
atomic_commit.

To avoid this, clear CVAL before leaving config mode.

Signed-off-by: Brian Starkey &lt;brian.starkey@arm.com&gt;
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
<entry>
<title>drm/arm: mark symbols static where possible</title>
<updated>2016-11-04T17:10:42+00:00</updated>
<author>
<name>Baoyou Xie</name>
<email>baoyou.xie@linaro.org</email>
</author>
<published>2016-10-22T09:13:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ed8b0c0f93fd91447770ced4a7ecac1a1f39eae2'/>
<id>urn:sha1:ed8b0c0f93fd91447770ced4a7ecac1a1f39eae2</id>
<content type='text'>
We get 2 warnings when building kernel with W=1:
drivers/gpu/drm/arm/malidp_planes.c:49:25: warning: no previous prototype for 'malidp_duplicate_plane_state' [-Wmissing-prototypes]
drivers/gpu/drm/arm/malidp_planes.c:66:6: warning: no previous prototype for 'malidp_destroy_plane_state' [-Wmissing-prototypes]

In fact, both functions are only used in the file in which they are
declared and don't need a declaration, but can be made static.
So this patch marks these functions with 'static'.

Signed-off-by: Baoyou Xie &lt;baoyou.xie@linaro.org&gt;
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
<entry>
<title>drm: mali-dp: Add support for setting plane's rotation property from userspace.</title>
<updated>2016-11-04T17:10:42+00:00</updated>
<author>
<name>Liviu Dudau</name>
<email>Liviu.Dudau@arm.com</email>
</author>
<published>2016-10-24T17:35:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2fe1f08ee06e9f2eabdaf9fdaba31360920abfcb'/>
<id>urn:sha1:2fe1f08ee06e9f2eabdaf9fdaba31360920abfcb</id>
<content type='text'>
In order to support DRM_IOCTL_MODE_OBJ_SETPROPERTY for the rotation property
we need to have a -&gt;set_property hook defined for the planes. Set the
plane's -&gt;set_property hook to drm_atomic_helper_plane_set_property()

Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
<entry>
<title>drm: mali-dp: Don't set DRM_PLANE_COMMIT_ACTIVE_ONLY</title>
<updated>2016-11-04T17:10:10+00:00</updated>
<author>
<name>Brian Starkey</name>
<email>brian.starkey@arm.com</email>
</author>
<published>2016-10-24T13:55:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fe37ed6a2dd63b5cc945b6b354c02b58473c0abf'/>
<id>urn:sha1:fe37ed6a2dd63b5cc945b6b354c02b58473c0abf</id>
<content type='text'>
We need to explicitly disable our planes, so don't set the flag which
would otherwise skip the plane disable when the CRTC is disabled.

Signed-off-by: Brian Starkey &lt;brian.starkey@arm.com&gt;
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
<entry>
<title>drm: mali-dp: Store internal format and n_planes in plane state</title>
<updated>2016-11-04T17:09:45+00:00</updated>
<author>
<name>Brian Starkey</name>
<email>brian.starkey@arm.com</email>
</author>
<published>2016-10-11T14:26:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=70c94a3c8f68187b272e5aa4e1a9df354df461eb'/>
<id>urn:sha1:70c94a3c8f68187b272e5aa4e1a9df354df461eb</id>
<content type='text'>
Save a search through the format lists at commit-time by storing the
internal format ID and number of planes in our plane state.

Signed-off-by: Brian Starkey &lt;brian.starkey@arm.com&gt;
Signed-off-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;
</content>
</entry>
</feed>
