diff options
| author | Dave Airlie <airlied@redhat.com> | 2013-07-30 00:04:44 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2013-07-30 00:04:44 -0400 |
| commit | ca089b7266337c144a17a890c5168f4db205ba85 (patch) | |
| tree | 8dd5a407e82f1095d172713fcff78d65bc7b1d2c | |
| parent | de7500eafc96274654201bd585fb85e2814ef9b2 (diff) | |
| parent | db70d16ef63dbd412a974c893c52ee5ad0777d21 (diff) | |
Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos
This pull request fixes module build and g2d clock
control issues, and includes related cleanup.
* 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
drm/exynos: Remove module.h header inclusion
drm/exynos: consider common clock framework to g2d driver.
drm/exynos: fix module build error
drm/exynos: exynos_drm_ipp: fix return value check
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_ddc.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimc.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_g2d.c | 19 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_ipp.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_rotator.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_vidi.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_hdmi.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_hdmiphy.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_mixer.c | 1 |
12 files changed, 20 insertions, 24 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_ddc.c b/drivers/gpu/drm/exynos/exynos_ddc.c index 95c75edef01a..30ef41bcd7b8 100644 --- a/drivers/gpu/drm/exynos/exynos_ddc.c +++ b/drivers/gpu/drm/exynos/exynos_ddc.c | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | 15 | ||
| 16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
| 17 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
| 18 | #include <linux/module.h> | ||
| 19 | 18 | ||
| 20 | 19 | ||
| 21 | #include "exynos_drm_drv.h" | 20 | #include "exynos_drm_drv.h" |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c b/drivers/gpu/drm/exynos/exynos_drm_fimc.c index 61b094f689a7..6e047bd53e2f 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | * | 12 | * |
| 13 | */ | 13 | */ |
| 14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
| 15 | #include <linux/module.h> | ||
| 16 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
| 17 | #include <linux/mfd/syscon.h> | 16 | #include <linux/mfd/syscon.h> |
| 18 | #include <linux/regmap.h> | 17 | #include <linux/regmap.h> |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 3e106beca5b6..1c263dac3c1c 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c | |||
| @@ -14,7 +14,6 @@ | |||
| 14 | #include <drm/drmP.h> | 14 | #include <drm/drmP.h> |
| 15 | 15 | ||
| 16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
| 17 | #include <linux/module.h> | ||
| 18 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
| 19 | #include <linux/clk.h> | 18 | #include <linux/clk.h> |
| 20 | #include <linux/of_device.h> | 19 | #include <linux/of_device.h> |
| @@ -130,7 +129,6 @@ static const struct of_device_id fimd_driver_dt_match[] = { | |||
| 130 | .data = &exynos5_fimd_driver_data }, | 129 | .data = &exynos5_fimd_driver_data }, |
| 131 | {}, | 130 | {}, |
| 132 | }; | 131 | }; |
| 133 | MODULE_DEVICE_TABLE(of, fimd_driver_dt_match); | ||
| 134 | #endif | 132 | #endif |
| 135 | 133 | ||
| 136 | static inline struct fimd_driver_data *drm_fimd_get_driver_data( | 134 | static inline struct fimd_driver_data *drm_fimd_get_driver_data( |
| @@ -1082,7 +1080,6 @@ static struct platform_device_id fimd_driver_ids[] = { | |||
| 1082 | }, | 1080 | }, |
| 1083 | {}, | 1081 | {}, |
| 1084 | }; | 1082 | }; |
| 1085 | MODULE_DEVICE_TABLE(platform, fimd_driver_ids); | ||
| 1086 | 1083 | ||
| 1087 | static const struct dev_pm_ops fimd_pm_ops = { | 1084 | static const struct dev_pm_ops fimd_pm_ops = { |
| 1088 | SET_SYSTEM_SLEEP_PM_OPS(fimd_suspend, fimd_resume) | 1085 | SET_SYSTEM_SLEEP_PM_OPS(fimd_suspend, fimd_resume) |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c index 42a5a5466075..eddea4941483 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c | |||
| @@ -8,7 +8,6 @@ | |||
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
| 11 | #include <linux/module.h> | ||
| 12 | #include <linux/clk.h> | 11 | #include <linux/clk.h> |
| 13 | #include <linux/err.h> | 12 | #include <linux/err.h> |
| 14 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
| @@ -806,9 +805,20 @@ static void g2d_dma_start(struct g2d_data *g2d, | |||
| 806 | struct g2d_cmdlist_node *node = | 805 | struct g2d_cmdlist_node *node = |
| 807 | list_first_entry(&runqueue_node->run_cmdlist, | 806 | list_first_entry(&runqueue_node->run_cmdlist, |
| 808 | struct g2d_cmdlist_node, list); | 807 | 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 | } | ||
| 809 | 815 | ||
| 810 | pm_runtime_get_sync(g2d->dev); | 816 | ret = clk_prepare_enable(g2d->gate_clk); |
| 811 | clk_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 | } | ||
| 812 | 822 | ||
| 813 | writel_relaxed(node->dma_addr, g2d->regs + G2D_DMA_SFR_BASE_ADDR); | 823 | writel_relaxed(node->dma_addr, g2d->regs + G2D_DMA_SFR_BASE_ADDR); |
| 814 | writel_relaxed(G2D_DMA_START, g2d->regs + G2D_DMA_COMMAND); | 824 | writel_relaxed(G2D_DMA_START, g2d->regs + G2D_DMA_COMMAND); |
| @@ -861,7 +871,7 @@ static void g2d_runqueue_worker(struct work_struct *work) | |||
| 861 | runqueue_work); | 871 | runqueue_work); |
| 862 | 872 | ||
| 863 | mutex_lock(&g2d->runqueue_mutex); | 873 | mutex_lock(&g2d->runqueue_mutex); |
| 864 | clk_disable(g2d->gate_clk); | 874 | clk_disable_unprepare(g2d->gate_clk); |
| 865 | pm_runtime_put_sync(g2d->dev); | 875 | pm_runtime_put_sync(g2d->dev); |
| 866 | 876 | ||
| 867 | complete(&g2d->runqueue_node->complete); | 877 | complete(&g2d->runqueue_node->complete); |
| @@ -1521,7 +1531,6 @@ static const struct of_device_id exynos_g2d_match[] = { | |||
| 1521 | { .compatible = "samsung,exynos5250-g2d" }, | 1531 | { .compatible = "samsung,exynos5250-g2d" }, |
| 1522 | {}, | 1532 | {}, |
| 1523 | }; | 1533 | }; |
| 1524 | MODULE_DEVICE_TABLE(of, exynos_g2d_match); | ||
| 1525 | #endif | 1534 | #endif |
| 1526 | 1535 | ||
| 1527 | struct platform_driver g2d_driver = { | 1536 | struct platform_driver g2d_driver = { |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c index 472e3b25e7f2..90b8a1a5344c 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | * | 12 | * |
| 13 | */ | 13 | */ |
| 14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
| 15 | #include <linux/module.h> | ||
| 16 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
| 17 | #include <linux/clk.h> | 16 | #include <linux/clk.h> |
| 18 | #include <linux/pm_runtime.h> | 17 | #include <linux/pm_runtime.h> |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_hdmi.c b/drivers/gpu/drm/exynos/exynos_drm_hdmi.c index aaa550d622f0..8d3bc01d6834 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_hdmi.c | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | 15 | ||
| 16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
| 17 | #include <linux/wait.h> | 17 | #include <linux/wait.h> |
| 18 | #include <linux/module.h> | ||
| 19 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
| 20 | #include <linux/pm_runtime.h> | 19 | #include <linux/pm_runtime.h> |
| 21 | 20 | ||
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c index b1ef8e7ff9c9..d2b6ab4def93 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c | |||
| @@ -12,7 +12,6 @@ | |||
| 12 | * | 12 | * |
| 13 | */ | 13 | */ |
| 14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
| 15 | #include <linux/module.h> | ||
| 16 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
| 17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
| 18 | #include <linux/clk.h> | 17 | #include <linux/clk.h> |
| @@ -342,10 +341,10 @@ int exynos_drm_ipp_get_property(struct drm_device *drm_dev, void *data, | |||
| 342 | */ | 341 | */ |
| 343 | ippdrv = ipp_find_obj(&ctx->ipp_idr, &ctx->ipp_lock, | 342 | ippdrv = ipp_find_obj(&ctx->ipp_idr, &ctx->ipp_lock, |
| 344 | prop_list->ipp_id); | 343 | prop_list->ipp_id); |
| 345 | if (!ippdrv) { | 344 | if (IS_ERR(ippdrv)) { |
| 346 | DRM_ERROR("not found ipp%d driver.\n", | 345 | DRM_ERROR("not found ipp%d driver.\n", |
| 347 | prop_list->ipp_id); | 346 | prop_list->ipp_id); |
| 348 | return -EINVAL; | 347 | return PTR_ERR(ippdrv); |
| 349 | } | 348 | } |
| 350 | 349 | ||
| 351 | prop_list = ippdrv->prop_list; | 350 | prop_list = ippdrv->prop_list; |
| @@ -970,9 +969,9 @@ int exynos_drm_ipp_queue_buf(struct drm_device *drm_dev, void *data, | |||
| 970 | /* find command node */ | 969 | /* find command node */ |
| 971 | c_node = ipp_find_obj(&ctx->prop_idr, &ctx->prop_lock, | 970 | c_node = ipp_find_obj(&ctx->prop_idr, &ctx->prop_lock, |
| 972 | qbuf->prop_id); | 971 | qbuf->prop_id); |
| 973 | if (!c_node) { | 972 | if (IS_ERR(c_node)) { |
| 974 | DRM_ERROR("failed to get command node.\n"); | 973 | DRM_ERROR("failed to get command node.\n"); |
| 975 | return -EFAULT; | 974 | return PTR_ERR(c_node); |
| 976 | } | 975 | } |
| 977 | 976 | ||
| 978 | /* buffer control */ | 977 | /* buffer control */ |
| @@ -1106,9 +1105,9 @@ int exynos_drm_ipp_cmd_ctrl(struct drm_device *drm_dev, void *data, | |||
| 1106 | 1105 | ||
| 1107 | c_node = ipp_find_obj(&ctx->prop_idr, &ctx->prop_lock, | 1106 | c_node = ipp_find_obj(&ctx->prop_idr, &ctx->prop_lock, |
| 1108 | cmd_ctrl->prop_id); | 1107 | cmd_ctrl->prop_id); |
| 1109 | if (!c_node) { | 1108 | if (IS_ERR(c_node)) { |
| 1110 | DRM_ERROR("invalid command node list.\n"); | 1109 | DRM_ERROR("invalid command node list.\n"); |
| 1111 | return -EINVAL; | 1110 | return PTR_ERR(c_node); |
| 1112 | } | 1111 | } |
| 1113 | 1112 | ||
| 1114 | if (!exynos_drm_ipp_check_valid(ippdrv->dev, cmd_ctrl->ctrl, | 1113 | if (!exynos_drm_ipp_check_valid(ippdrv->dev, cmd_ctrl->ctrl, |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c index 427640aa5148..49669aa24c45 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c +++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
| 13 | #include <linux/module.h> | ||
| 14 | #include <linux/err.h> | 13 | #include <linux/err.h> |
| 15 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
| 16 | #include <linux/io.h> | 15 | #include <linux/io.h> |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c index 41cc74d83e4e..c57c56519add 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c | |||
| @@ -13,7 +13,6 @@ | |||
| 13 | #include <drm/drmP.h> | 13 | #include <drm/drmP.h> |
| 14 | 14 | ||
| 15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
| 16 | #include <linux/module.h> | ||
| 17 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
| 18 | 17 | ||
| 19 | #include <drm/exynos_drm.h> | 18 | #include <drm/exynos_drm.h> |
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index 62ef5971ac3c..2f5c6942c968 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c | |||
| @@ -24,7 +24,6 @@ | |||
| 24 | #include <linux/spinlock.h> | 24 | #include <linux/spinlock.h> |
| 25 | #include <linux/wait.h> | 25 | #include <linux/wait.h> |
| 26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
| 27 | #include <linux/module.h> | ||
| 28 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
| 29 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
| 30 | #include <linux/irq.h> | 29 | #include <linux/irq.h> |
diff --git a/drivers/gpu/drm/exynos/exynos_hdmiphy.c b/drivers/gpu/drm/exynos/exynos_hdmiphy.c index ef04255076c7..6e320ae9afed 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmiphy.c +++ b/drivers/gpu/drm/exynos/exynos_hdmiphy.c | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | 15 | ||
| 16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
| 17 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
| 18 | #include <linux/module.h> | ||
| 19 | 18 | ||
| 20 | #include "exynos_drm_drv.h" | 19 | #include "exynos_drm_drv.h" |
| 21 | #include "exynos_hdmi.h" | 20 | #include "exynos_hdmi.h" |
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 42ffb71c63bc..c9a137caea41 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c | |||
| @@ -23,7 +23,6 @@ | |||
| 23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
| 24 | #include <linux/wait.h> | 24 | #include <linux/wait.h> |
| 25 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
| 26 | #include <linux/module.h> | ||
| 27 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
| 28 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
| 29 | #include <linux/irq.h> | 28 | #include <linux/irq.h> |
