This patch-set series adds runtime pm support for host1x,
gr2d & dc. It retains the current behaviour if CONFIG_PM_RUNTIME
is not enabled.
For host1x & gr2d, the clocks are now enabled in .probe
and disabled on its exit. This is needed for correct
init of hardware.
Additionally for gr2d, the clocks are also enabled when
a new work is submitted and disabled when the work is done.
Due to parent->child relations between host1x->gr2d,
this scheme also ends up in enabling & …
[View More]disabling host1x clock
For dc, the clocks are enabled in .probe and disabled in
.remove but via runtime pm instead of direct clock APIs.
Mayuresh Kulkarni (4):
gpu: host1x: shuffle job APIs
gpu: host1x: add runtime pm support for gr2d
gpu: host1x: add runtime pm support for dc
gpu: host1x: add runtime pm support for host1x
drivers/gpu/host1x/cdma.c | 2 ++
drivers/gpu/host1x/channel.c | 8 ------
drivers/gpu/host1x/channel.h | 1 -
drivers/gpu/host1x/dev.c | 57 ++++++++++++++++++++++++++++++++++++++++
drivers/gpu/host1x/drm/dc.c | 60 +++++++++++++++++++++++++++++++++++++++----
drivers/gpu/host1x/drm/gr2d.c | 56 +++++++++++++++++++++++++++++++++++++++-
drivers/gpu/host1x/job.c | 21 +++++++++++++++
drivers/gpu/host1x/job.h | 3 +++
8 files changed, 193 insertions(+), 15 deletions(-)
--
1.8.1.5
[View Less]
vm_mmap function returns unsigned long so addr type should be unsigned long.
a pointer or address variable is required to use unsigned long or uint64_t
type for 64bits address support.
So this patch makes sure that addr has unsigned long type and also
exynos_drm_gem_mmap_ioctl returns correct error type.
Signed-off-by: Inki Dae <inki.dae(a)samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park(a)samsung.com>
---
drivers/gpu/drm/exynos/exynos_drm_gem.c | 6 +++---
1 files …
[View More]changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index 5af1478..c3f15e7 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -420,7 +420,7 @@ int exynos_drm_gem_mmap_ioctl(struct drm_device *dev, void *data,
{
struct drm_exynos_gem_mmap *args = data;
struct drm_gem_object *obj;
- unsigned int addr;
+ unsigned long addr;
if (!(dev->driver->driver_features & DRIVER_GEM)) {
DRM_ERROR("does not support GEM.\n");
@@ -462,14 +462,14 @@ int exynos_drm_gem_mmap_ioctl(struct drm_device *dev, void *data,
drm_gem_object_unreference(obj);
- if (IS_ERR((void *)addr)) {
+ if (IS_ERR_VALUE(addr)) {
/* check filp->f_op, filp->private_data are restored */
if (file_priv->filp->f_op == &exynos_drm_gem_fops) {
file_priv->filp->f_op = fops_get(dev->driver->fops);
file_priv->filp->private_data = file_priv;
}
mutex_unlock(&dev->struct_mutex);
- return PTR_ERR((void *)addr);
+ return (int)addr;
}
mutex_unlock(&dev->struct_mutex);
--
1.7.5.4
[View Less]
drm_mode_detailed() is called quite often, therefore when a monitor
that has a detailed timing mode marked DRM_EDID_PT_STEREO or requiring
composite sync, warning messages will clutter up the kernel log.
Like we already do for incorrect hsync/vsync pluse widths, print these
messages only when KMS debugging is enabled.
Signed-off-by: Egbert Eich <eich(a)suse.com>
---
drivers/gpu/drm/drm_edid.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/…
[View More]drm_edid.c b/drivers/gpu/drm/drm_edid.c
index e8d17ee..2dc1a60 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1706,11 +1706,11 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev,
return NULL;
if (pt->misc & DRM_EDID_PT_STEREO) {
- printk(KERN_WARNING "stereo mode not supported\n");
+ DRM_DEBUG_KMS("stereo mode not supported\n");
return NULL;
}
if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) {
- printk(KERN_WARNING "composite sync not supported\n");
+ DRM_DEBUG_KMS("composite sync not supported\n");
}
/* it is incorrect if hsync/vsync width is zero */
--
1.8.1.4
[View Less]
https://bugs.freedesktop.org/show_bug.cgi?id=65714
--- Comment #2 from Fabio Pedretti <fabio.ped(a)libero.it> ---
(In reply to comment #1)
> Does the ppa enable LLVM? If so does setting env var R600_LLVM=0 help?
The PPA is compiling with LLVM but *without* --enable-r600-llvm-compiler .
--
You are receiving this mail because:
You are the assignee for the bug.
https://bugs.freedesktop.org/show_bug.cgi?id=65714
Alex Deucher <agd5f(a)yahoo.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|mesa-dev(a)lists.freedesktop. |dri-devel(a)lists.freedesktop
|org |.org
Version|9.1 |git
Component|Mesa core |Drivers/Gallium/r600
--
You …
[View More]are receiving this mail because:
You are the assignee for the bug.
[View Less]
After switching to CCF, driver and device tree nodes are required
to be update with clock information. This set includes those changes.
After these patches, the only missing portion is hdmiphy power control
which is posted independently. Together, basic hdmi is working for
exynos5250.
Rahul Sharma (2):
drm/exynos: add mout_hdmi clock in hdmi driver to change parent
ARM/dts: add clocks to hdmi dt node for exynos5250
Sean Paul (2):
drm/exynos: Prepare/Unprepare HDMI subsystem clocks
…
[View More]ARM: dts: Add mixer clocks to mixer node
arch/arm/boot/dts/exynos5250.dtsi | 8 ++++---
drivers/gpu/drm/exynos/exynos_hdmi.c | 38 +++++++++++++++++++--------------
drivers/gpu/drm/exynos/exynos_mixer.c | 12 +++++------
3 files changed, 33 insertions(+), 25 deletions(-)
--
1.7.10.4
[View Less]
Running mgag200_driver_unload when the driver init fails early on
causes functions like drm_mode_config_cleanup to be called. The
problem is, drm_mode_config_cleanup crashes because the corresponding
init hasn't happend yet. There really isn't anything to cleanup after
mgag200_device_init, so we can just pass the error code upwards.
Acked-by: Julia Lemire <jlemire(a)matrox.com>
Signed-off-by: Christopher Harvey <charvey(a)matrox.com>
---
drivers/gpu/drm/mgag200/mgag200_main.c | 2 +…
[View More]-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
index 5189675..6d6b598 100644
--- a/drivers/gpu/drm/mgag200/mgag200_main.c
+++ b/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -209,7 +209,7 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
r = mgag200_device_init(dev, flags);
if (r) {
dev_err(&dev->pdev->dev, "Fatal error during GPU init: %d\n", r);
- goto out;
+ return r;
}
r = mgag200_mm_init(mdev);
if (r)
--
1.8.1.5
[View Less]
At the larger resolutions, the g200e series sometimes struggles with
maintaining a proper output. Problems like flickering or black bands appearing
on screen can occur. In order to avoid this, limitations regarding resolutions
and bandwidth have been added for the different variations of the g200e series.
Julia Lemire (1):
drm/mgag200: Added resolution and bandwidth limits for various G200e
products.
drivers/gpu/drm/mgag200/mgag200_drv.h | 41 ++++++++++++------------
drivers/gpu/…
[View More]drm/mgag200/mgag200_main.c | 2 +-
drivers/gpu/drm/mgag200/mgag200_mode.c | 55 ++++++++++++++++++++++++++++++--
3 files changed, 75 insertions(+), 23 deletions(-)
--
1.7.10.4
[View Less]