<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/drm, branch v4.0</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.0</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.0'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2015-03-04T23:04:39Z</updated>
<entry>
<title>drm/ttm: device address space != CPU address space</title>
<updated>2015-03-04T23:04:39Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexdeucher@gmail.com</email>
</author>
<published>2015-03-04T05:18:38Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=54c4cd68ed7abd9f245722bee39464d04ddb4cfd'/>
<id>urn:sha1:54c4cd68ed7abd9f245722bee39464d04ddb4cfd</id>
<content type='text'>
We need to store device offsets in 64 bit as the device
address space may be larger than the CPU's.

Fixes GPU init failures on radeons with 4GB or more of
vram on 32 bit kernels.  We put vram at the start of the
GPU's address space so the gart aperture starts at 4 GB
causing all GPU addresses in the gart aperture to get
truncated.

bug:
https://bugs.freedesktop.org/show_bug.cgi?id=89072

[airlied: fix warning on nouveau build]

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: thellstrom@vmware.com
Acked-by: Thomas Hellstrom &lt;thellstrom@vmware.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/mm: Support 4 GiB and larger ranges</title>
<updated>2015-03-04T23:01:37Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2015-01-23T08:05:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=440fd5283a87345cdd4237bdf45fb01130ea0056'/>
<id>urn:sha1:440fd5283a87345cdd4237bdf45fb01130ea0056</id>
<content type='text'>
The current implementation is limited by the number of addresses that
fit into an unsigned long. This causes problems on 32-bit Tegra where
unsigned long is 32-bit but drm_mm is used to manage an IOVA space of
4 GiB. Given the 32-bit limitation, the range is limited to 4 GiB - 1
(or 4 GiB - 4 KiB for page granularity).

This commit changes the start and size of the range to be an unsigned
64-bit integer, thus allowing much larger ranges to be supported.

[airlied: fix i915 warnings and coloring callback]

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;

fixupo
</content>
</entry>
<entry>
<title>drm/i915/bdw: PCI IDs ending in 0xb are ULT.</title>
<updated>2015-02-23T09:31:18Z</updated>
<author>
<name>Rodrigo Vivi</name>
<email>rodrigo.vivi@intel.com</email>
</author>
<published>2015-01-21T19:46:32Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0dc6f20b9803f09726bbb682649d35cda8ef5b5d'/>
<id>urn:sha1:0dc6f20b9803f09726bbb682649d35cda8ef5b5d</id>
<content type='text'>
When reviewing patch that fixes VGA on BDW Halo Jani noticed that
we also had other ULT IDs that weren't listed there.

So this follow-up patch add these pci-ids as halo and fix comments
on i915_pciids.h

Cc: Jani Nikula &lt;jani.nikula@intel.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
</content>
</entry>
<entry>
<title>drm/dp: add drm_dp_link_power_down() helper</title>
<updated>2015-02-01T20:06:42Z</updated>
<author>
<name>Rob Clark</name>
<email>robdclark@gmail.com</email>
</author>
<published>2014-12-02T15:43:07Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d816f07736254d9e4745cff4d427404300c242ef'/>
<id>urn:sha1:d816f07736254d9e4745cff4d427404300c242ef</id>
<content type='text'>
We had _power_up(), but drivers also need to be able to power down.

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Reviewed-by: Thierry Reding &lt;treding@nvidia.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/bridge: make bridge registration independent of drm flow</title>
<updated>2015-01-28T07:45:40Z</updated>
<author>
<name>Ajay Kumar</name>
<email>ajaykumar.rs@samsung.com</email>
</author>
<published>2015-01-20T16:38:44Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3d3f8b1f8b62c3a010976269df454baa9246fc65'/>
<id>urn:sha1:3d3f8b1f8b62c3a010976269df454baa9246fc65</id>
<content type='text'>
Currently, third party bridge drivers(ptn3460) are dependent
on the corresponding encoder driver init, since bridge driver
needs a drm_device pointer to finish drm initializations.
The encoder driver passes the drm_device pointer to the
bridge driver. Because of this dependency, third party drivers
like ptn3460 doesn't adhere to the driver model.

In this patch, we reframe the bridge registration framework
so that bridge initialization is split into 2 steps, and
bridge registration happens independent of drm flow:
--Step 1: gather all the bridge settings independent of drm and
	  add the bridge onto a global list of bridges.
--Step 2: when the encoder driver is probed, call drm_bridge_attach
	  for the corresponding bridge so that the bridge receives
	  drm_device pointer and continues with connector and other
	  drm initializations.

The old set of bridge helpers are removed, and a set of new helpers
are added to accomplish the 2 step initialization.

The bridge devices register themselves onto global list of bridges
when they get probed by calling "drm_bridge_add".

The parent encoder driver waits till the bridge is available
in the lookup table(by calling "of_drm_find_bridge") and then
continues with its initialization.

The encoder driver should also call "drm_bridge_attach" to pass
on the drm_device to the bridge object.

drm_bridge_attach inturn calls "bridge-&gt;funcs-&gt;attach" so that
bridge can continue with drm related initializations.

Signed-off-by: Ajay Kumar &lt;ajaykumar.rs@samsung.com&gt;
Acked-by: Inki Dae &lt;inki.dae@samsung.com&gt;
Tested-by: Rahul Sharma &lt;rahul.sharma@samsung.com&gt;
Tested-by: Javier Martinez Canillas &lt;javier.martinez@collabora.co.uk&gt;
Tested-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Tested-by: Sjoerd Simons &lt;sjoerd.simons@collabora.co.uk&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>drm/bridge: do not pass drm_bridge_funcs to drm_bridge_init</title>
<updated>2015-01-28T07:45:40Z</updated>
<author>
<name>Ajay Kumar</name>
<email>ajaykumar.rs@samsung.com</email>
</author>
<published>2015-01-20T16:38:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b07b90fd178a4797b0454ead491b717b41046bee'/>
<id>urn:sha1:b07b90fd178a4797b0454ead491b717b41046bee</id>
<content type='text'>
Assign the pointer to bridge ops structure(drm_bridge_funcs) in
the bridge driver itself, instead of passing it to drm_bridge_init.

This will allow bridge driver developer to pack bridge private
information inside the bridge object and pass only the drm-relevant
information to drm_bridge_init.

Signed-off-by: Ajay Kumar &lt;ajaykumar.rs@samsung.com&gt;
Acked-by: Inki Dae &lt;inki.dae@samsung.com&gt;
Tested-by: Rahul Sharma &lt;rahul.sharma@samsung.com&gt;
Tested-by: Javier Martinez Canillas &lt;javier.martinez@collabora.co.uk&gt;
Tested-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Tested-by: Sjoerd Simons &lt;sjoerd.simons@collabora.co.uk&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'topic/atomic-core-2015-01-27' of git://anongit.freedesktop.org/drm-intel into drm-next</title>
<updated>2015-01-27T23:34:27Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2015-01-27T23:34:27Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=21773f16f2cb3c056051c679da542f0b494252e2'/>
<id>urn:sha1:21773f16f2cb3c056051c679da542f0b494252e2</id>
<content type='text'>
* tag 'topic/atomic-core-2015-01-27' of git://anongit.freedesktop.org/drm-intel:
  drm/atomic: Fix potential use of state after free
  drm/atomic-helper: debug output for modesets
  drm/atomic-helpers: Saner encoder/crtc callbacks
  drm/atomic-helpers: Recover full cursor plane behaviour
  drm/atomic-helper: add connector-&gt;dpms() implementation
  drm/atomic: Add drm_crtc_state-&gt;active
  drm: Add standardized boolean props
  drm/plane-helper: Fix transitional helper kerneldocs
  drm/plane-helper: Skip prepare_fb/cleanup_fb when newfb==oldfb

Conflicts:
	include/drm/drm_crtc_helper.h
</content>
</entry>
<entry>
<title>Merge tag 'drm/tegra/for-3.20-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next</title>
<updated>2015-01-27T23:27:29Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2015-01-27T23:27:29Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=2f5b4ef15c60bc5292a3f006c018acb3da53737b'/>
<id>urn:sha1:2f5b4ef15c60bc5292a3f006c018acb3da53737b</id>
<content type='text'>
drm/tegra: Changes for v3.20-rc1

The biggest part of these changes is the conversion to atomic mode-
setting. A lot of cleanup and demidlayering was required before the
conversion, with the result being a whole lot of changes.

Besides the atomic mode-setting support, the host1x bus now has the
proper infrastructure to support suspend/resume for child devices.

Finally, a couple of smaller cleanup patches round things off.

* tag 'drm/tegra/for-3.20-rc1' of git://anongit.freedesktop.org/tegra/linux: (54 commits)
  drm/tegra: Use correct relocation target offsets
  drm/tegra: Add minimal power management
  drm/tegra: dc: Unify enabling the display controller
  drm/tegra: Track tiling and format in plane state
  drm/tegra: Track active planes in CRTC state
  drm/tegra: Remove unused -&gt;mode_fixup() callbacks
  drm/tegra: Atomic conversion, phase 3, step 3
  drm/tegra: Atomic conversion, phase 3, step 2
  drm/tegra: dc: Use atomic clock state in modeset
  drm/tegra: sor: Implement -&gt;atomic_check()
  drm/tegra: hdmi: Implement -&gt;atomic_check()
  drm/tegra: dsi: Implement -&gt;atomic_check()
  drm/tegra: rgb: Implement -&gt;atomic_check()
  drm/tegra: dc: Store clock setup in atomic state
  drm/tegra: Atomic conversion, phase 3, step 1
  drm/tegra: Atomic conversion, phase 2
  drm/tegra: Atomic conversion, phase 1
  drm/tegra: dc: Do not needlessly deassert reset
  drm/tegra: Output cleanup functions cannot fail
  drm/tegra: Remove remnants of the output midlayer
  ...
</content>
</entry>
<entry>
<title>drm/atomic: Add -&gt;atomic_check() to encoder helpers</title>
<updated>2015-01-27T09:14:42Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-12-03T15:44:34Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4cd4df8080a3e0d9b5a75dd52fa2133738def213'/>
<id>urn:sha1:4cd4df8080a3e0d9b5a75dd52fa2133738def213</id>
<content type='text'>
This callback can be used instead of the legacy -&gt;mode_fixup() and is
passed the CRTC and connector states. It can thus use these states to
validate the modeset and cache values in the state to be used during
the actual modeset.

Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>drm/plane: Add optional -&gt;atomic_disable() callback</title>
<updated>2015-01-27T09:14:42Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-11-20T11:05:50Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=407b8bd9f5d284ffa13a9f9a709e6289bb4ae47e'/>
<id>urn:sha1:407b8bd9f5d284ffa13a9f9a709e6289bb4ae47e</id>
<content type='text'>
In order to prevent drivers from having to perform the same checks over
and over again, add an optional -&gt;atomic_disable callback which the core
calls under the right circumstances.

v2: pass old state and detect edges to avoid calling -&gt;atomic_disable on
already disabled planes, remove redundant comment (Daniel Vetter)

v3: rename helper to drm_atomic_plane_disabling() to clarify that it is
checking for transitions, move helper to drm_atomic_helper.h, clarify
check for !old_state and its relation to transitional helpers

Here's an extract from some discussion rationalizing the behaviour (for
a full version, see the reference below):

    &gt; &gt; Hm, thinking about this some more this will result in a slight difference
    &gt; &gt; in behaviour, at least when drivers just use the helper -&gt;reset functions
    &gt; &gt; but don't disable everything:
    &gt; &gt; - With transitional helpers we assume we know nothing and call
    &gt; &gt;   -&gt;atomic_disable.
    &gt; &gt; - With atomic old_state-&gt;crtc == NULL in the same situation right after
    &gt; &gt;   boot-up, but we asssume the plane is really off and _dont_ call
    &gt; &gt;   -&gt;atomic_disable.
    &gt; &gt;
    &gt; &gt; Should we instead check for (old_state &amp;&amp; old_state-&gt;crtc) and state that
    &gt; &gt; drivers need to make sure they don't have stuff hanging around?
    &gt;
    &gt; I don't think we can check for old_state because otherwise this will
    &gt; always return false, whereas we really want it to force-disable planes
    &gt; that could be on (lacking any more accurate information). For
    &gt; transitional helpers anyway.
    &gt;
    &gt; For the atomic helpers, old_state will never be NULL, but I'd assume
    &gt; that the driver would reconstruct the current state in -&gt;reset().

    By the way, the reason for why old_state can be NULL with transitional
    helpers is the ordering of the steps in the atomic transition. Currently
    the Tegra patches do this (based on your blog post and the Exynos proto-
    type):

        1) atomic conversion, phase 1:
           - implement -&gt;atomic_{check,update,disable}()
           - use drm_plane_helper_{update,disable}()

        2) atomic conversion, phase 2:
           - call drm_mode_config_reset() from -&gt;load()
           - implement -&gt;reset()

    That's only a partial list of what's done in these steps, but that's the
    only relevant pieces for why old_state is NULL.

    What happens is that without -&gt;reset() implemented there won't be any
    initial state, hence plane-&gt;state (the old_state here) will be NULL the
    first time atomic state is applied.

    We could of course reorder the sequence such that drivers are required
    to hook up -&gt;reset() before they can (or at the same as they) hook up
    the transitional helpers. We could add an appropriate WARN_ON to this
    helper to make that more obvious.

    However, that will not solve the problem because it only gets rid of the
    special case. We still don't know whether old_state-&gt;crtc == NULL is the
    current state or just the initial default.

    So no matter which way we do this, I don't see a way to get away without
    requiring specific semantics from drivers. They would be that:

        - drivers recreate the correct state in -&gt;reset() so that
          old_state-&gt;crtc != NULL if the plane is really enabled

    or

        - drivers have to ensure that the real state in fact mirrors the
          initial default as encoded in the state (plane disabled)

References: http://lists.freedesktop.org/archives/dri-devel/2015-January/075578.html
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Reviewed-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
</feed>
