Skip to content

Commit 64ccccf

Browse files
committed
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie: "Radeon, nouveau, exynos, intel, mgag200.. Not all strictly regressions but there was probably only one patch I'd have really left out and it didn't seem worth respinning exynos to avoid it, the line change count is quite low. radeon: regressions + more dynamic powermanagement fixes, since DPM is a new feature, and off by default I'd prefer to keep merging fixes since it has a large userbase already and I'd like to keep them on mainline nouveau: is mostly regression fixes i915: is a regression fix since Daniel is on holidays I've merged it. mgag200: I've picked a bunch of targetted fixes from a big bunch of distro patches, exynos: build fixes mostly, one regression fix I expect things will slow right down now, I may send on the intel early quirk from Jesse separatly, since I think the x86 maintainers acked it" * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (37 commits) drm/i915: fix missed hunk after GT access breakage drm/radeon/dpm: re-enable cac control on SI drm/radeon/dpm: fix calculations in si_calculate_leakage_for_v_and_t_formula drm: fix 64 bit drm fixed point helpers drm/radeon/atom: initialize more atom interpretor elements to 0 drm/nouveau: fix semaphore dmabuf obj drm/nouveau/vm: make vm refcount into a kref drm/nv31/mpeg: don't recognize nv3x cards as having nv44 graph class drm/nv40/mpeg: write magic value to channel object to make it work drm/nouveau: fix size check for cards without vm drm/nv50-/disp: remove dcb_outp_match call, and related variables drm/nva3-/disp: fix hda eld writing, needs to be padded drm/nv31/mpeg: fix mpeg engine initialization drm/nv50/mc: include vp in the fb error reporting mask drm/nouveau: fix null pointer dereference in poll_changed drm/nv50/gpio: post-nv92 cards have 32 interrupt lines drm/nvc0/fb: take lock in nvc0_ram_put() drm/nouveau/core: xtensa firmware size needs to be 0x40000 no matter what drm/mgag200: Fix LUT programming for 16bpp drm/mgag200: Fix framebuffer pitch calculation ...
2 parents ec8fa30 + e1b4d30 commit 64ccccf

41 files changed

Lines changed: 192 additions & 125 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

drivers/gpu/drm/exynos/exynos_ddc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#include <linux/kernel.h>
1717
#include <linux/i2c.h>
18-
#include <linux/module.h>
1918

2019

2120
#include "exynos_drm_drv.h"

drivers/gpu/drm/exynos/exynos_drm_fimc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*
1313
*/
1414
#include <linux/kernel.h>
15-
#include <linux/module.h>
1615
#include <linux/platform_device.h>
1716
#include <linux/mfd/syscon.h>
1817
#include <linux/regmap.h>

drivers/gpu/drm/exynos/exynos_drm_fimd.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#include <drm/drmP.h>
1515

1616
#include <linux/kernel.h>
17-
#include <linux/module.h>
1817
#include <linux/platform_device.h>
1918
#include <linux/clk.h>
2019
#include <linux/of_device.h>
@@ -130,7 +129,6 @@ static const struct of_device_id fimd_driver_dt_match[] = {
130129
.data = &exynos5_fimd_driver_data },
131130
{},
132131
};
133-
MODULE_DEVICE_TABLE(of, fimd_driver_dt_match);
134132
#endif
135133

136134
static inline struct fimd_driver_data *drm_fimd_get_driver_data(
@@ -1082,7 +1080,6 @@ static struct platform_device_id fimd_driver_ids[] = {
10821080
},
10831081
{},
10841082
};
1085-
MODULE_DEVICE_TABLE(platform, fimd_driver_ids);
10861083

10871084
static const struct dev_pm_ops fimd_pm_ops = {
10881085
SET_SYSTEM_SLEEP_PM_OPS(fimd_suspend, fimd_resume)

drivers/gpu/drm/exynos/exynos_drm_g2d.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
*/
99

1010
#include <linux/kernel.h>
11-
#include <linux/module.h>
1211
#include <linux/clk.h>
1312
#include <linux/err.h>
1413
#include <linux/interrupt.h>
@@ -806,9 +805,20 @@ static void g2d_dma_start(struct g2d_data *g2d,
806805
struct g2d_cmdlist_node *node =
807806
list_first_entry(&runqueue_node->run_cmdlist,
808807
struct g2d_cmdlist_node, list);
808+
int ret;
809+
810+
ret = pm_runtime_get_sync(g2d->dev);
811+
if (ret < 0) {
812+
dev_warn(g2d->dev, "failed pm power on.\n");
813+
return;
814+
}
809815

810-
pm_runtime_get_sync(g2d->dev);
811-
clk_enable(g2d->gate_clk);
816+
ret = clk_prepare_enable(g2d->gate_clk);
817+
if (ret < 0) {
818+
dev_warn(g2d->dev, "failed to enable clock.\n");
819+
pm_runtime_put_sync(g2d->dev);
820+
return;
821+
}
812822

813823
writel_relaxed(node->dma_addr, g2d->regs + G2D_DMA_SFR_BASE_ADDR);
814824
writel_relaxed(G2D_DMA_START, g2d->regs + G2D_DMA_COMMAND);
@@ -861,7 +871,7 @@ static void g2d_runqueue_worker(struct work_struct *work)
861871
runqueue_work);
862872

863873
mutex_lock(&g2d->runqueue_mutex);
864-
clk_disable(g2d->gate_clk);
874+
clk_disable_unprepare(g2d->gate_clk);
865875
pm_runtime_put_sync(g2d->dev);
866876

867877
complete(&g2d->runqueue_node->complete);
@@ -1521,7 +1531,6 @@ static const struct of_device_id exynos_g2d_match[] = {
15211531
{ .compatible = "samsung,exynos5250-g2d" },
15221532
{},
15231533
};
1524-
MODULE_DEVICE_TABLE(of, exynos_g2d_match);
15251534
#endif
15261535

15271536
struct platform_driver g2d_driver = {

drivers/gpu/drm/exynos/exynos_drm_gsc.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*
1313
*/
1414
#include <linux/kernel.h>
15-
#include <linux/module.h>
1615
#include <linux/platform_device.h>
1716
#include <linux/clk.h>
1817
#include <linux/pm_runtime.h>

drivers/gpu/drm/exynos/exynos_drm_hdmi.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
#include <linux/kernel.h>
1717
#include <linux/wait.h>
18-
#include <linux/module.h>
1918
#include <linux/platform_device.h>
2019
#include <linux/pm_runtime.h>
2120

drivers/gpu/drm/exynos/exynos_drm_ipp.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*
1313
*/
1414
#include <linux/kernel.h>
15-
#include <linux/module.h>
1615
#include <linux/platform_device.h>
1716
#include <linux/types.h>
1817
#include <linux/clk.h>
@@ -342,10 +341,10 @@ int exynos_drm_ipp_get_property(struct drm_device *drm_dev, void *data,
342341
*/
343342
ippdrv = ipp_find_obj(&ctx->ipp_idr, &ctx->ipp_lock,
344343
prop_list->ipp_id);
345-
if (!ippdrv) {
344+
if (IS_ERR(ippdrv)) {
346345
DRM_ERROR("not found ipp%d driver.\n",
347346
prop_list->ipp_id);
348-
return -EINVAL;
347+
return PTR_ERR(ippdrv);
349348
}
350349

351350
prop_list = ippdrv->prop_list;
@@ -970,9 +969,9 @@ int exynos_drm_ipp_queue_buf(struct drm_device *drm_dev, void *data,
970969
/* find command node */
971970
c_node = ipp_find_obj(&ctx->prop_idr, &ctx->prop_lock,
972971
qbuf->prop_id);
973-
if (!c_node) {
972+
if (IS_ERR(c_node)) {
974973
DRM_ERROR("failed to get command node.\n");
975-
return -EFAULT;
974+
return PTR_ERR(c_node);
976975
}
977976

978977
/* buffer control */
@@ -1106,9 +1105,9 @@ int exynos_drm_ipp_cmd_ctrl(struct drm_device *drm_dev, void *data,
11061105

11071106
c_node = ipp_find_obj(&ctx->prop_idr, &ctx->prop_lock,
11081107
cmd_ctrl->prop_id);
1109-
if (!c_node) {
1108+
if (IS_ERR(c_node)) {
11101109
DRM_ERROR("invalid command node list.\n");
1111-
return -EINVAL;
1110+
return PTR_ERR(c_node);
11121111
}
11131112

11141113
if (!exynos_drm_ipp_check_valid(ippdrv->dev, cmd_ctrl->ctrl,

drivers/gpu/drm/exynos/exynos_drm_rotator.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
*/
1111

1212
#include <linux/kernel.h>
13-
#include <linux/module.h>
1413
#include <linux/err.h>
1514
#include <linux/interrupt.h>
1615
#include <linux/io.h>

drivers/gpu/drm/exynos/exynos_drm_vidi.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <drm/drmP.h>
1414

1515
#include <linux/kernel.h>
16-
#include <linux/module.h>
1716
#include <linux/platform_device.h>
1817

1918
#include <drm/exynos_drm.h>

drivers/gpu/drm/exynos/exynos_hdmi.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#include <linux/spinlock.h>
2525
#include <linux/wait.h>
2626
#include <linux/i2c.h>
27-
#include <linux/module.h>
2827
#include <linux/platform_device.h>
2928
#include <linux/interrupt.h>
3029
#include <linux/irq.h>

0 commit comments

Comments
 (0)