This patchset is based on exynos-drm-next-todo branch of Inki Dae's tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos.git
Inital discussion can be found at:
http://www.mail-archive.com/linux-samsung-soc@vger.kernel.org/msg30008.html
As Rob suggested, I have added few static-inline helpers for bridge chaining,
and as Sean suggested, I have moved the bridge chain creation to
encoder implementation(exynos_dp).
Ajay Kumar (3):
[RFC V3 1/3] drm/bridge: add helper …
[View More]functions to support bridge chain
[RFC V3 2/3] drm/bridge: add a dummy panel driver to support lvds bridges
[RFC V3 3/3] drm: create and demonstrate bridge chaining using exynos_dp
.../bindings/drm/bridge/bridge_panel.txt | 45 ++++
drivers/gpu/drm/bridge/Kconfig | 6 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/bridge_panel.c | 217 ++++++++++++++++++++
drivers/gpu/drm/bridge/ptn3460.c | 60 ++++--
drivers/gpu/drm/exynos/exynos_dp_core.c | 25 ++-
include/drm/bridge/bridge_panel.h | 40 ++++
include/drm/bridge/ptn3460.h | 15 +-
include/drm/drm_crtc.h | 72 +++++++
9 files changed, 453 insertions(+), 28 deletions(-)
create mode 100644 Documentation/devicetree/bindings/drm/bridge/bridge_panel.txt
create mode 100644 drivers/gpu/drm/bridge/bridge_panel.c
create mode 100644 include/drm/bridge/bridge_panel.h
--
1.7.9.5
[View Less]
This series depends on the previously posted reservation api patches.
2 of them are not yet in for-next-fences branch of
git://git.linaro.org/people/sumit.semwal/linux-3.x.git
The missing patches are still in my vmwgfx_wip branch at
git://people.freedesktop.org/~mlankhorst/linux
All ttm drivers are converted to the fence api, fence_lock is removed
and rcu is used in its place.
qxl is the first driver to use shared fence slots, but when these patches
are applied it's easy to convert nouveau …
[View More]too. I've done it as part of the
cross-device gpu synchronization patch series.
---
Maarten Lankhorst (16):
drm/ttm: add interruptible parameter to ttm_eu_reserve_buffers
drm/ttm: kill off some members to ttm_validate_buffer
drm/nouveau: add reservation to nouveau_gem_ioctl_cpu_prep
drm/nouveau: require reservations for nouveau_fence_sync and nouveau_bo_fence
drm/ttm: call ttm_bo_wait while inside a reservation
drm/ttm: kill fence_lock
drm/nouveau: rework to new fence interface
drm/radeon: use common fence implementation for fences
drm/qxl: rework to new fence interface
drm/vmwgfx: get rid of different types of fence_flags entirely
drm/vmwgfx: rework to new fence interface
drm/ttm: flip the switch, and convert to dma_fence
drm/nouveau: use rcu in nouveau_gem_ioctl_cpu_prep
drm/radeon: use rcu waits in some ioctls
drm/vmwgfx: use rcu in vmw_user_dmabuf_synccpu_grab
drm/ttm: use rcu in core ttm
drivers/gpu/drm/nouveau/core/core/event.c | 4
drivers/gpu/drm/nouveau/nouveau_bo.c | 59 +---
drivers/gpu/drm/nouveau/nouveau_display.c | 25 +-
drivers/gpu/drm/nouveau/nouveau_fence.c | 430 +++++++++++++++++++----------
drivers/gpu/drm/nouveau/nouveau_fence.h | 22 +
drivers/gpu/drm/nouveau/nouveau_gem.c | 55 +---
drivers/gpu/drm/nouveau/nv04_fence.c | 4
drivers/gpu/drm/nouveau/nv10_fence.c | 4
drivers/gpu/drm/nouveau/nv17_fence.c | 2
drivers/gpu/drm/nouveau/nv50_fence.c | 2
drivers/gpu/drm/nouveau/nv84_fence.c | 11 -
drivers/gpu/drm/qxl/Makefile | 2
drivers/gpu/drm/qxl/qxl_cmd.c | 7
drivers/gpu/drm/qxl/qxl_debugfs.c | 16 +
drivers/gpu/drm/qxl/qxl_drv.h | 20 -
drivers/gpu/drm/qxl/qxl_fence.c | 91 ------
drivers/gpu/drm/qxl/qxl_kms.c | 1
drivers/gpu/drm/qxl/qxl_object.c | 2
drivers/gpu/drm/qxl/qxl_object.h | 6
drivers/gpu/drm/qxl/qxl_release.c | 172 ++++++++++--
drivers/gpu/drm/qxl/qxl_ttm.c | 93 ------
drivers/gpu/drm/radeon/radeon.h | 15 -
drivers/gpu/drm/radeon/radeon_cs.c | 10 +
drivers/gpu/drm/radeon/radeon_device.c | 1
drivers/gpu/drm/radeon/radeon_display.c | 20 +
drivers/gpu/drm/radeon/radeon_fence.c | 191 ++++++++++---
drivers/gpu/drm/radeon/radeon_gem.c | 19 +
drivers/gpu/drm/radeon/radeon_object.c | 8 -
drivers/gpu/drm/radeon/radeon_ttm.c | 34 --
drivers/gpu/drm/radeon/radeon_uvd.c | 10 -
drivers/gpu/drm/ttm/ttm_bo.c | 187 ++++++-------
drivers/gpu/drm/ttm/ttm_bo_util.c | 28 --
drivers/gpu/drm/ttm/ttm_bo_vm.c | 3
drivers/gpu/drm/ttm/ttm_execbuf_util.c | 146 +++-------
drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 47 ---
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 24 --
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 329 ++++++++++++----------
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h | 35 +-
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 43 +--
include/drm/ttm/ttm_bo_api.h | 7
include/drm/ttm/ttm_bo_driver.h | 29 --
include/drm/ttm/ttm_execbuf_util.h | 22 +
43 files changed, 1107 insertions(+), 1130 deletions(-)
delete mode 100644 drivers/gpu/drm/qxl/qxl_fence.c
--
Signature
[View Less]
https://bugzilla.kernel.org/show_bug.cgi?id=66731
Zhang Rui <rui.zhang(a)intel.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rui.zhang(a)intel.com
Component|Other |Video(DRI - non Intel)
Product|ACPI |Drivers
--
You are receiving this mail because:
You are watching the …
[View More]assignee of the bug.
[View Less]
There is a risk that the variable will be used without being initialized.
This was largely found by using a static code analysis program called cppcheck.
Signed-off-by: Rickard Strandqvist <rickard_strandqvist(a)spectrumdigital.se>
---
drivers/gpu/drm/radeon/r600_cp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/r600_cp.c b/drivers/gpu/drm/radeon/r600_cp.c
index 8c9b7e2..0770ad6 100644
--- a/drivers/gpu/drm/radeon/r600_cp.c
+++ b/drivers/…
[View More]gpu/drm/radeon/r600_cp.c
@@ -2615,7 +2615,7 @@ int r600_cs_legacy_ioctl(struct drm_device *dev, void *data, struct drm_file *fp
struct drm_radeon_cs *cs = data;
struct drm_buf *buf;
unsigned family;
- int l, r = 0;
+ int l = 0, r = 0;
u32 *ib, cs_id = 0;
if (dev_priv == NULL) {
--
1.7.10.4
[View Less]
https://bugzilla.kernel.org/show_bug.cgi?id=66871
Bug ID: 66871
Summary: Radeon multi-screen intermittent display failure
Product: Drivers
Version: 2.5
Kernel Version: 3.13.0-rc3
Hardware: x86-64
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Video(DRI - non Intel)
Assignee: drivers_video-dri(a)kernel-bugs.osdl.org
…
[View More]Reporter: erik(a)emedwards.info
Regression: No
In this kernel the 3rd display only comes on for a few partial frames every 20
to 40 seconds. Three displays attached to motherboard.
Under kernel 3.11.10, Radeon driver operates correctly.
Using:
ASRock FM2A85X-ITX MB
AMD A10-6800k (Not overclocked)
8 GB DDR3
VGA montitor - Dell flat screen - 19"
HDMI0 montitor - (via DVI connector) - Acer 23" flat.
HDMI1 montitor - (via HDMI connector) - Acer 22" flat
VGA is 1 - on an the left.
HDMI1 is 2 - in the center.
HDMI0 is 3 - on the right.
--
You are receiving this mail because:
You are watching the assignee of the bug.
[View Less]
Setting the power state prior to restoring the display
hardware leads to blank screens on some systems. Drop
the power state set from dpm resume. The power state
will get set as part of the mode set sequence. Also
add an explicit power state set after mode set resume
to cover PX and headless systems.
bug:
https://bugzilla.kernel.org/show_bug.cgi?id=76761
Signed-off-by: Alex Deucher <alexander.deucher(a)amd.com>
Cc: stable(a)vger.kernel.org
---
drivers/gpu/drm/radeon/atombios_crtc.c |…
[View More] 6 ++----
drivers/gpu/drm/radeon/radeon_device.c | 5 +++++
drivers/gpu/drm/radeon/radeon_pm.c | 1 -
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 998435d..baa1459 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -270,8 +270,6 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode)
switch (mode) {
case DRM_MODE_DPMS_ON:
radeon_crtc->enabled = true;
- /* adjust pm to dpms changes BEFORE enabling crtcs */
- radeon_pm_compute_clocks(rdev);
atombios_enable_crtc(crtc, ATOM_ENABLE);
if (ASIC_IS_DCE3(rdev) && !ASIC_IS_DCE6(rdev))
atombios_enable_crtc_memreq(crtc, ATOM_ENABLE);
@@ -289,10 +287,10 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode)
atombios_enable_crtc_memreq(crtc, ATOM_DISABLE);
atombios_enable_crtc(crtc, ATOM_DISABLE);
radeon_crtc->enabled = false;
- /* adjust pm to dpms changes AFTER disabling crtcs */
- radeon_pm_compute_clocks(rdev);
break;
}
+ /* adjust pm to dpms */
+ radeon_pm_compute_clocks(rdev);
}
static void
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 9aa1afd..20bc5af 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -1562,6 +1562,11 @@ int radeon_resume_kms(struct drm_device *dev, bool resume, bool fbcon)
}
drm_kms_helper_poll_enable(dev);
+
+ /* set the power state here in case we are a PX system or headless */
+ if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled)
+ radeon_pm_compute_clocks(rdev);
+
return 0;
}
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 6fac8ef..304c476 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -1068,7 +1068,6 @@ static void radeon_pm_resume_dpm(struct radeon_device *rdev)
if (ret)
goto dpm_resume_fail;
rdev->pm.dpm_enabled = true;
- radeon_pm_compute_clocks(rdev);
return;
dpm_resume_fail:
--
1.8.3.1
[View Less]