diff options
-rw-r--r-- | drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 3 |
2 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c index 6c414db6ff02..1cb91bef2bc1 100644 --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | |||
@@ -62,6 +62,7 @@ static const struct mdp5_config msm8x74_config = { | |||
62 | .count = 4, | 62 | .count = 4, |
63 | .base = { 0x12500, 0x12700, 0x12900, 0x12b00 }, | 63 | .base = { 0x12500, 0x12700, 0x12900, 0x12b00 }, |
64 | }, | 64 | }, |
65 | .max_clk = 200000000, | ||
65 | }; | 66 | }; |
66 | 67 | ||
67 | static const struct mdp5_config apq8084_config = { | 68 | static const struct mdp5_config apq8084_config = { |
@@ -99,6 +100,7 @@ static const struct mdp5_config apq8084_config = { | |||
99 | .count = 5, | 100 | .count = 5, |
100 | .base = { 0x12500, 0x12700, 0x12900, 0x12b00, 0x12d00 }, | 101 | .base = { 0x12500, 0x12700, 0x12900, 0x12b00, 0x12d00 }, |
101 | }, | 102 | }, |
103 | .max_clk = 320000000, | ||
102 | }; | 104 | }; |
103 | 105 | ||
104 | struct mdp5_config_entry { | 106 | struct mdp5_config_entry { |
@@ -427,12 +429,13 @@ struct msm_kms *mdp5_kms_init(struct drm_device *dev) | |||
427 | if (ret) | 429 | if (ret) |
428 | goto fail; | 430 | goto fail; |
429 | 431 | ||
430 | ret = clk_set_rate(mdp5_kms->src_clk, config->max_clk); | ||
431 | |||
432 | ret = mdp5_select_hw_cfg(kms); | 432 | ret = mdp5_select_hw_cfg(kms); |
433 | if (ret) | 433 | if (ret) |
434 | goto fail; | 434 | goto fail; |
435 | 435 | ||
436 | /* TODO: compute core clock rate at runtime */ | ||
437 | clk_set_rate(mdp5_kms->src_clk, mdp5_kms->hw_cfg->max_clk); | ||
438 | |||
436 | /* make sure things are off before attaching iommu (bootloader could | 439 | /* make sure things are off before attaching iommu (bootloader could |
437 | * have left things on, in which case we'll start getting faults if | 440 | * have left things on, in which case we'll start getting faults if |
438 | * we don't disable): | 441 | * we don't disable): |
@@ -493,8 +496,6 @@ static struct mdp5_platform_config *mdp5_get_config(struct platform_device *dev) | |||
493 | /* TODO */ | 496 | /* TODO */ |
494 | #endif | 497 | #endif |
495 | config.iommu = iommu_domain_alloc(&platform_bus_type); | 498 | config.iommu = iommu_domain_alloc(&platform_bus_type); |
496 | /* TODO hard-coded in downstream mdss, but should it be? */ | ||
497 | config.max_clk = 200000000; | ||
498 | /* TODO get from DT: */ | 499 | /* TODO get from DT: */ |
499 | config.smp_blk_cnt = 22; | 500 | config.smp_blk_cnt = 22; |
500 | 501 | ||
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h index 0e9e3f7f4e9d..70aa8d4dbba0 100644 --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | |||
@@ -37,6 +37,8 @@ struct mdp5_config { | |||
37 | struct mdp5_sub_block dspp; | 37 | struct mdp5_sub_block dspp; |
38 | struct mdp5_sub_block ad; | 38 | struct mdp5_sub_block ad; |
39 | struct mdp5_sub_block intf; | 39 | struct mdp5_sub_block intf; |
40 | |||
41 | uint32_t max_clk; | ||
40 | }; | 42 | }; |
41 | extern const struct mdp5_config *mdp5_cfg; | 43 | extern const struct mdp5_config *mdp5_cfg; |
42 | #include "mdp5.xml.h" | 44 | #include "mdp5.xml.h" |
@@ -83,7 +85,6 @@ struct mdp5_kms { | |||
83 | /* platform config data (ie. from DT, or pdata) */ | 85 | /* platform config data (ie. from DT, or pdata) */ |
84 | struct mdp5_platform_config { | 86 | struct mdp5_platform_config { |
85 | struct iommu_domain *iommu; | 87 | struct iommu_domain *iommu; |
86 | uint32_t max_clk; | ||
87 | int smp_blk_cnt; | 88 | int smp_blk_cnt; |
88 | }; | 89 | }; |
89 | 90 | ||