<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/gpu/drm/drm_fb_helper.c, branch v4.2-rc8</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>drm/drm: constify all struct drm_*_helper funcs pointers</title>
<updated>2015-04-07T16:11:25+00:00</updated>
<author>
<name>Jani Nikula</name>
<email>jani.nikula@intel.com</email>
</author>
<published>2015-03-11T09:51:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=be26a66de5f5722388966a62d772df832818bcb9'/>
<id>be26a66de5f5722388966a62d772df832818bcb9</id>
<content type='text'>
They are not to be modified.

Generated using the semantic patch:

@@
@@
(
  const struct drm_crtc_helper_funcs *
|
- struct drm_crtc_helper_funcs *
+ const struct drm_crtc_helper_funcs *
)

@@
@@
(
  const struct drm_encoder_helper_funcs *
|
- struct drm_encoder_helper_funcs *
+ const struct drm_encoder_helper_funcs *
)

@@
@@
(
  const struct drm_connector_helper_funcs *
|
- struct drm_connector_helper_funcs *
+ const struct drm_connector_helper_funcs *
)

@@
@@
(
  const struct drm_plane_helper_funcs *
|
- struct drm_plane_helper_funcs *
+ const struct drm_plane_helper_funcs *
)

Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
They are not to be modified.

Generated using the semantic patch:

@@
@@
(
  const struct drm_crtc_helper_funcs *
|
- struct drm_crtc_helper_funcs *
+ const struct drm_crtc_helper_funcs *
)

@@
@@
(
  const struct drm_encoder_helper_funcs *
|
- struct drm_encoder_helper_funcs *
+ const struct drm_encoder_helper_funcs *
)

@@
@@
(
  const struct drm_connector_helper_funcs *
|
- struct drm_connector_helper_funcs *
+ const struct drm_connector_helper_funcs *
)

@@
@@
(
  const struct drm_plane_helper_funcs *
|
- struct drm_plane_helper_funcs *
+ const struct drm_plane_helper_funcs *
)

Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: fb_helper: Simplify exit condition</title>
<updated>2015-03-23T15:22:29+00:00</updated>
<author>
<name>Daniel Stone</name>
<email>daniels@collabora.com</email>
</author>
<published>2015-03-19T04:33:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f3af5c7ddd9af8a466a725c6ba8ae2414aa19113'/>
<id>f3af5c7ddd9af8a466a725c6ba8ae2414aa19113</id>
<content type='text'>
mode is always NULL at this point in the function, so make our intention
clear.

Signed-off-by: Daniel Stone &lt;daniels@collabora.com&gt;
[danvet: Stop clearing mode too to enlist gcc in tracking
uninitialized usage. And remove a space while at it.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
mode is always NULL at this point in the function, so make our intention
clear.

Signed-off-by: Daniel Stone &lt;daniels@collabora.com&gt;
[danvet: Stop clearing mode too to enlist gcc in tracking
uninitialized usage. And remove a space while at it.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/fb: handle tiled connectors better</title>
<updated>2015-03-11T21:10:11+00:00</updated>
<author>
<name>Rob Clark</name>
<email>robdclark@gmail.com</email>
</author>
<published>2015-03-11T14:23:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0e3704c94c5737f42e9ac49a5dcca366674e5229'/>
<id>0e3704c94c5737f42e9ac49a5dcca366674e5229</id>
<content type='text'>
We don't want tile 0,0 to artificially constrain the size of the legacy
fbdev device.  Instead when reducing fb_size to be the minimum of all
displays, only consider the rightmost and bottommost tiles.

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Tested-by: Hai Li &lt;hali@codeaurora.org&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't want tile 0,0 to artificially constrain the size of the legacy
fbdev device.  Instead when reducing fb_size to be the minimum of all
displays, only consider the rightmost and bottommost tiles.

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Tested-by: Hai Li &lt;hali@codeaurora.org&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/fb: small cleanup</title>
<updated>2015-03-11T21:09:39+00:00</updated>
<author>
<name>Rob Clark</name>
<email>robdclark@gmail.com</email>
</author>
<published>2015-03-11T14:23:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=675c8328db6548f00a4e60770e66ab53752d6bf2'/>
<id>675c8328db6548f00a4e60770e66ab53752d6bf2</id>
<content type='text'>
Flip conditional to reduce indentation level of rest of fxn, and use
min/max to make the code clearer.

v2: surface_width -&gt; surface_height typo

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Reviewed-by: Daniel Kurtz &lt;djkurtz@chromium.org&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Flip conditional to reduce indentation level of rest of fxn, and use
min/max to make the code clearer.

v2: surface_width -&gt; surface_height typo

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Reviewed-by: Daniel Kurtz &lt;djkurtz@chromium.org&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux</title>
<updated>2015-02-16T23:48:00+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-02-16T23:48:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=796e1c55717e9a6ff5c81b12289ffa1ffd919b6f'/>
<id>796e1c55717e9a6ff5c81b12289ffa1ffd919b6f</id>
<content type='text'>
Pull drm updates from Dave Airlie:
 "This is the main drm pull, it has a shared branch with some alsa
  crossover but everything should be acked by relevant people.

  New drivers:
     - ATMEL HLCDC driver
     - designware HDMI core support (used in multiple SoCs).

  core:
     - lots more atomic modesetting work, properties and atomic ioctl
       (hidden under option)
     - bridge rework allows support for Samsung exynos chromebooks to
       work finally.
     - some more panels supported

  i915:
     - atomic plane update support
     - DSI uses shared DSI infrastructure
     - Skylake basic support is all merged now
     - component framework used for i915/snd-hda interactions
     - write-combine cpu memory mappings
     - engine init code refactored
     - full ppgtt enabled where execlists are enabled.
     - cherryview rps/gpu turbo and pipe CRC support.

  radeon:
     - indirect draw support for evergreen/cayman
     - SMC and manual fan control for SI/CI
     - Displayport audio support

  amdkfd:
     - SDMA usermode queue support
     - replace suballocator usage with more suitable one
     - rework for allowing interfacing to more than radeon

  nouveau:
     - major renaming in prep for later splitting work
     - merge arm platform driver into nouveau
     - GK20A reclocking support

  msm:
     - conversion to atomic modesetting
     - YUV support for mdp4/5
     - eDP support
     - hw cursor for mdp5

  tegra:
     - conversion to atomic modesetting
     - better suspend/resume support for child devices

  rcar-du:
     - interlaced support

  imx:
     - move to using dw_hdmi shared support
     - mode_fixup support

  sti:
     - DVO support
     - HDMI infoframe support

  exynos:
     - refactoring and cleanup, removed lots of internal unnecessary
       abstraction
     - exynos7 DECON display controller support

  Along with the usual bunch of fixes, cleanups etc"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (724 commits)
  drm/radeon: fix voltage setup on hawaii
  drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary
  drm/radeon: only enable kv/kb dpm interrupts once v3
  drm/radeon: workaround for CP HW bug on CIK
  drm/radeon: Don't try to enable write-combining without PAT
  drm/radeon: use 0-255 rather than 0-100 for pwm fan range
  drm/i915: Clamp efficient frequency to valid range
  drm/i915: Really ignore long HPD pulses on eDP
  drm/exynos: Add DECON driver
  drm/i915: Correct the base value while updating LP_OUTPUT_HOLD in MIPI_PORT_CTRL
  drm/i915: Insert a command barrier on BLT/BSD cache flushes
  drm/i915: Drop vblank wait from intel_dp_link_down
  drm/exynos: fix NULL pointer reference
  drm/exynos: remove exynos_plane_dpms
  drm/exynos: remove mode property of exynos crtc
  drm/exynos: Remove exynos_plane_dpms() call with no effect
  drm/i915: Squelch overzealous uncore reset WARN_ON
  drm/i915: Take runtime pm reference on hangcheck_info
  drm/i915: Correct the IOSF Dev_FN field for IOSF transfers
  drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull drm updates from Dave Airlie:
 "This is the main drm pull, it has a shared branch with some alsa
  crossover but everything should be acked by relevant people.

  New drivers:
     - ATMEL HLCDC driver
     - designware HDMI core support (used in multiple SoCs).

  core:
     - lots more atomic modesetting work, properties and atomic ioctl
       (hidden under option)
     - bridge rework allows support for Samsung exynos chromebooks to
       work finally.
     - some more panels supported

  i915:
     - atomic plane update support
     - DSI uses shared DSI infrastructure
     - Skylake basic support is all merged now
     - component framework used for i915/snd-hda interactions
     - write-combine cpu memory mappings
     - engine init code refactored
     - full ppgtt enabled where execlists are enabled.
     - cherryview rps/gpu turbo and pipe CRC support.

  radeon:
     - indirect draw support for evergreen/cayman
     - SMC and manual fan control for SI/CI
     - Displayport audio support

  amdkfd:
     - SDMA usermode queue support
     - replace suballocator usage with more suitable one
     - rework for allowing interfacing to more than radeon

  nouveau:
     - major renaming in prep for later splitting work
     - merge arm platform driver into nouveau
     - GK20A reclocking support

  msm:
     - conversion to atomic modesetting
     - YUV support for mdp4/5
     - eDP support
     - hw cursor for mdp5

  tegra:
     - conversion to atomic modesetting
     - better suspend/resume support for child devices

  rcar-du:
     - interlaced support

  imx:
     - move to using dw_hdmi shared support
     - mode_fixup support

  sti:
     - DVO support
     - HDMI infoframe support

  exynos:
     - refactoring and cleanup, removed lots of internal unnecessary
       abstraction
     - exynos7 DECON display controller support

  Along with the usual bunch of fixes, cleanups etc"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (724 commits)
  drm/radeon: fix voltage setup on hawaii
  drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary
  drm/radeon: only enable kv/kb dpm interrupts once v3
  drm/radeon: workaround for CP HW bug on CIK
  drm/radeon: Don't try to enable write-combining without PAT
  drm/radeon: use 0-255 rather than 0-100 for pwm fan range
  drm/i915: Clamp efficient frequency to valid range
  drm/i915: Really ignore long HPD pulses on eDP
  drm/exynos: Add DECON driver
  drm/i915: Correct the base value while updating LP_OUTPUT_HOLD in MIPI_PORT_CTRL
  drm/i915: Insert a command barrier on BLT/BSD cache flushes
  drm/i915: Drop vblank wait from intel_dp_link_down
  drm/exynos: fix NULL pointer reference
  drm/exynos: remove exynos_plane_dpms
  drm/exynos: remove mode property of exynos crtc
  drm/exynos: Remove exynos_plane_dpms() call with no effect
  drm/i915: Squelch overzealous uncore reset WARN_ON
  drm/i915: Take runtime pm reference on hangcheck_info
  drm/i915: Correct the IOSF Dev_FN field for IOSF transfers
  drm/exynos: fix DMA_ATTR_NO_KERNEL_MAPPING usage
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: fix fb-helper vs MST dangling connector ptrs (v2)</title>
<updated>2015-01-30T03:04:17+00:00</updated>
<author>
<name>Rob Clark</name>
<email>robdclark@gmail.com</email>
</author>
<published>2015-01-26T15:11:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2148f18fdb45f31ca269a7787fbc24053cd42e70'/>
<id>2148f18fdb45f31ca269a7787fbc24053cd42e70</id>
<content type='text'>
VT switch back/forth from console to xserver (for example) has potential
to go horribly wrong if a dynamic DP MST connector ends up in the saved
modeset that is restored when switching back to fbcon.

When removing a dynamic connector, don't forget to clean up the saved
state.

v1: original
v2: null out set-&gt;fb if no more connectors to avoid making i915 cranky

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1184968
Cc: stable@vger.kernel.org #v3.17+
Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
VT switch back/forth from console to xserver (for example) has potential
to go horribly wrong if a dynamic DP MST connector ends up in the saved
modeset that is restored when switching back to fbcon.

When removing a dynamic connector, don't forget to clean up the saved
state.

v1: original
v2: null out set-&gt;fb if no more connectors to avoid making i915 cranky

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1184968
Cc: stable@vger.kernel.org #v3.17+
Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'topic/core-stuff-2015-01-23' of git://anongit.freedesktop.org/drm-intel into drm-next</title>
<updated>2015-01-26T22:54:11+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2015-01-26T22:54:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e4514003c6d0afd0a2d7e23e397530d746f34057'/>
<id>e4514003c6d0afd0a2d7e23e397530d746f34057</id>
<content type='text'>
Just flushing out my drm-misc branch, nothing major. Well too old patches
I've dug out from years since a patch from Rob look eerily familiar ;-)

* tag 'topic/core-stuff-2015-01-23' of git://anongit.freedesktop.org/drm-intel:
  drm/probe-helper: clamp unknown connector status in the poll work
  drm/probe-helper: don't lose hotplug event
  next: drm/atomic: Use copy_from_user to copy 64 bit data from user space
  drm: Make drm_read() more robust against multithreaded races
  drm/fb-helper: Propagate errors from initial config failure
  drm: Drop superfluous "select VT_HW_CONSOLE_BINDING"
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just flushing out my drm-misc branch, nothing major. Well too old patches
I've dug out from years since a patch from Rob look eerily familiar ;-)

* tag 'topic/core-stuff-2015-01-23' of git://anongit.freedesktop.org/drm-intel:
  drm/probe-helper: clamp unknown connector status in the poll work
  drm/probe-helper: don't lose hotplug event
  next: drm/atomic: Use copy_from_user to copy 64 bit data from user space
  drm: Make drm_read() more robust against multithreaded races
  drm/fb-helper: Propagate errors from initial config failure
  drm: Drop superfluous "select VT_HW_CONSOLE_BINDING"
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/fb-helper: Propagate errors from initial config failure</title>
<updated>2015-01-21T13:57:03+00:00</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-12-19T10:21:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=01934c2a691882185b3021d437df13bcba07711d'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: fb helper should avoid sleeping in panic context</title>
<updated>2015-01-20T23:26:15+00:00</updated>
<author>
<name>Rui Wang</name>
<email>rui.y.wang@intel.com</email>
</author>
<published>2014-12-15T19:28:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9aa609e1a3846d3c17087b62579867bab0f488de'/>
<id>9aa609e1a3846d3c17087b62579867bab0f488de</id>
<content type='text'>
There are still some places in the fb helper that need to avoid
sleeping in panic context. Here's an example:

[   65.615496] bad: scheduling from the idle thread!
[   65.620747] CPU: 92 PID: 0 Comm: swapper/92 Tainted: G   M        E  3.18.0-rc4-7-default+ #20

[   65.630364] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS
BRHSXSD1.86B.0056.R01.1409242327 09/24/2014
[   65.641923]  ffff88087f693d80 ffff88087f689878 ffffffff81566db9 0000000000000000
[   65.650226]  ffff88087f693d80 ffff88087f689898 ffffffff810871ff ffff88046eb3e0d0
[   65.658527]  ffff88087f693d80 ffff88087f6898c8 ffffffff8107c1fa 000000017f6898b8
[   65.666830] Call Trace:
[   65.669557]  &lt;#MC&gt;  [&lt;ffffffff81566db9&gt;] dump_stack+0x46/0x58
[   65.675994]  [&lt;ffffffff810871ff&gt;] dequeue_task_idle+0x2f/0x40
[   65.682412]  [&lt;ffffffff8107c1fa&gt;] dequeue_task+0x5a/0x80
[   65.688345]  [&lt;ffffffff810804f3&gt;] deactivate_task+0x23/0x30
[   65.694569]  [&lt;ffffffff81569050&gt;] __schedule+0x580/0x7f0
[   65.700502]  [&lt;ffffffff81569739&gt;] schedule_preempt_disabled+0x29/0x70
[   65.707696]  [&lt;ffffffff8156abb6&gt;] __ww_mutex_lock_slowpath+0xb8/0x162
[   65.714891]  [&lt;ffffffff8156acb3&gt;] __ww_mutex_lock+0x53/0x85
[   65.721125]  [&lt;ffffffffa00b3a5d&gt;] drm_modeset_lock+0x3d/0x110 [drm]
[   65.728132]  [&lt;ffffffffa00b3c2a&gt;] __drm_modeset_lock_all+0x8a/0x120 [drm]
[   65.735721]  [&lt;ffffffffa00b3cd0&gt;] drm_modeset_lock_all+0x10/0x30 [drm]
[   65.743015]  [&lt;ffffffffa01af8bf&gt;] drm_fb_helper_pan_display+0x2f/0xf0 [drm_kms_helper]
[   65.751857]  [&lt;ffffffff8132bd21&gt;] fb_pan_display+0xd1/0x1a0
[   65.758081]  [&lt;ffffffff81326010&gt;] bit_update_start+0x20/0x50
[   65.764400]  [&lt;ffffffff813259f2&gt;] fbcon_switch+0x3a2/0x550
[   65.770528]  [&lt;ffffffff813a01c9&gt;] redraw_screen+0x189/0x240
[   65.776750]  [&lt;ffffffff81322f8a&gt;] fbcon_blank+0x20a/0x2d0
[   65.782778]  [&lt;ffffffff8137d359&gt;] ? erst_writer+0x209/0x330
[   65.789002]  [&lt;ffffffff810ba2f3&gt;] ? internal_add_timer+0x63/0x80
[   65.795710]  [&lt;ffffffff810bc137&gt;] ? mod_timer+0x127/0x1e0
[   65.801740]  [&lt;ffffffff813a0cd8&gt;] do_unblank_screen+0xa8/0x1d0
[   65.808255]  [&lt;ffffffff813a0e10&gt;] unblank_screen+0x10/0x20
[   65.814381]  [&lt;ffffffff812ca0d9&gt;] bust_spinlocks+0x19/0x40
[   65.820508]  [&lt;ffffffff81561ca7&gt;] panic+0x106/0x1f5
[   65.825955]  [&lt;ffffffff8102336c&gt;] mce_panic+0x2ac/0x2e0
[   65.831789]  [&lt;ffffffff812c796a&gt;] ? delay_tsc+0x4a/0x80
[   65.837625]  [&lt;ffffffff81024e1f&gt;] do_machine_check+0xbaf/0xbf0
[   65.844138]  [&lt;ffffffff813365d7&gt;] ? intel_idle+0xc7/0x150
[   65.850166]  [&lt;ffffffff8156f03f&gt;] machine_check+0x1f/0x30
[   65.856195]  [&lt;ffffffff813365d7&gt;] ? intel_idle+0xc7/0x150
[   65.862222]  &lt;&lt;EOE&gt;&gt;  [&lt;ffffffff814283d5&gt;] cpuidle_enter_state+0x55/0x170
[   65.869823]  [&lt;ffffffff814285a7&gt;] cpuidle_enter+0x17/0x20
[   65.875852]  [&lt;ffffffff81097b08&gt;] cpu_startup_entry+0x2d8/0x370
[   65.882467]  [&lt;ffffffff8102fe29&gt;] start_secondary+0x159/0x180

There's __drm_modeset_lock_all() which Daniel Vetter introduced for this
purpose. We can leverage that without reinventing anything. This patch
works with the latest kernel.

Reviewed-by: Rob Clark &lt;robdclark@gmail.com&gt;
Tested-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are still some places in the fb helper that need to avoid
sleeping in panic context. Here's an example:

[   65.615496] bad: scheduling from the idle thread!
[   65.620747] CPU: 92 PID: 0 Comm: swapper/92 Tainted: G   M        E  3.18.0-rc4-7-default+ #20

[   65.630364] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS
BRHSXSD1.86B.0056.R01.1409242327 09/24/2014
[   65.641923]  ffff88087f693d80 ffff88087f689878 ffffffff81566db9 0000000000000000
[   65.650226]  ffff88087f693d80 ffff88087f689898 ffffffff810871ff ffff88046eb3e0d0
[   65.658527]  ffff88087f693d80 ffff88087f6898c8 ffffffff8107c1fa 000000017f6898b8
[   65.666830] Call Trace:
[   65.669557]  &lt;#MC&gt;  [&lt;ffffffff81566db9&gt;] dump_stack+0x46/0x58
[   65.675994]  [&lt;ffffffff810871ff&gt;] dequeue_task_idle+0x2f/0x40
[   65.682412]  [&lt;ffffffff8107c1fa&gt;] dequeue_task+0x5a/0x80
[   65.688345]  [&lt;ffffffff810804f3&gt;] deactivate_task+0x23/0x30
[   65.694569]  [&lt;ffffffff81569050&gt;] __schedule+0x580/0x7f0
[   65.700502]  [&lt;ffffffff81569739&gt;] schedule_preempt_disabled+0x29/0x70
[   65.707696]  [&lt;ffffffff8156abb6&gt;] __ww_mutex_lock_slowpath+0xb8/0x162
[   65.714891]  [&lt;ffffffff8156acb3&gt;] __ww_mutex_lock+0x53/0x85
[   65.721125]  [&lt;ffffffffa00b3a5d&gt;] drm_modeset_lock+0x3d/0x110 [drm]
[   65.728132]  [&lt;ffffffffa00b3c2a&gt;] __drm_modeset_lock_all+0x8a/0x120 [drm]
[   65.735721]  [&lt;ffffffffa00b3cd0&gt;] drm_modeset_lock_all+0x10/0x30 [drm]
[   65.743015]  [&lt;ffffffffa01af8bf&gt;] drm_fb_helper_pan_display+0x2f/0xf0 [drm_kms_helper]
[   65.751857]  [&lt;ffffffff8132bd21&gt;] fb_pan_display+0xd1/0x1a0
[   65.758081]  [&lt;ffffffff81326010&gt;] bit_update_start+0x20/0x50
[   65.764400]  [&lt;ffffffff813259f2&gt;] fbcon_switch+0x3a2/0x550
[   65.770528]  [&lt;ffffffff813a01c9&gt;] redraw_screen+0x189/0x240
[   65.776750]  [&lt;ffffffff81322f8a&gt;] fbcon_blank+0x20a/0x2d0
[   65.782778]  [&lt;ffffffff8137d359&gt;] ? erst_writer+0x209/0x330
[   65.789002]  [&lt;ffffffff810ba2f3&gt;] ? internal_add_timer+0x63/0x80
[   65.795710]  [&lt;ffffffff810bc137&gt;] ? mod_timer+0x127/0x1e0
[   65.801740]  [&lt;ffffffff813a0cd8&gt;] do_unblank_screen+0xa8/0x1d0
[   65.808255]  [&lt;ffffffff813a0e10&gt;] unblank_screen+0x10/0x20
[   65.814381]  [&lt;ffffffff812ca0d9&gt;] bust_spinlocks+0x19/0x40
[   65.820508]  [&lt;ffffffff81561ca7&gt;] panic+0x106/0x1f5
[   65.825955]  [&lt;ffffffff8102336c&gt;] mce_panic+0x2ac/0x2e0
[   65.831789]  [&lt;ffffffff812c796a&gt;] ? delay_tsc+0x4a/0x80
[   65.837625]  [&lt;ffffffff81024e1f&gt;] do_machine_check+0xbaf/0xbf0
[   65.844138]  [&lt;ffffffff813365d7&gt;] ? intel_idle+0xc7/0x150
[   65.850166]  [&lt;ffffffff8156f03f&gt;] machine_check+0x1f/0x30
[   65.856195]  [&lt;ffffffff813365d7&gt;] ? intel_idle+0xc7/0x150
[   65.862222]  &lt;&lt;EOE&gt;&gt;  [&lt;ffffffff814283d5&gt;] cpuidle_enter_state+0x55/0x170
[   65.869823]  [&lt;ffffffff814285a7&gt;] cpuidle_enter+0x17/0x20
[   65.875852]  [&lt;ffffffff81097b08&gt;] cpu_startup_entry+0x2d8/0x370
[   65.882467]  [&lt;ffffffff8102fe29&gt;] start_secondary+0x159/0x180

There's __drm_modeset_lock_all() which Daniel Vetter introduced for this
purpose. We can leverage that without reinventing anything. This patch
works with the latest kernel.

Reviewed-by: Rob Clark &lt;robdclark@gmail.com&gt;
Tested-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Rui Wang &lt;rui.y.wang@intel.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/fb: add support for tiled monitor configurations. (v2)</title>
<updated>2014-12-08T23:56:49+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2014-10-20T06:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b0ee9e7fa5b461a91f24d1d03b10c6bf162c86f9'/>
<id>b0ee9e7fa5b461a91f24d1d03b10c6bf162c86f9</id>
<content type='text'>
This adds fbdev/con support for tiled monitors, so that we
only set a mode on the correct half of the monitor, or
span the two halves if needed.

v2: remove unneeded ERROR, fix | vs ||

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds fbdev/con support for tiled monitors, so that we
only set a mode on the correct half of the monitor, or
span the two halves if needed.

v2: remove unneeded ERROR, fix | vs ||

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
