On Mon, Nov 17, 2014 at 1:39 PM, Stephane Viau <sviau at codeaurora.org> wrote: > The core clock rate depends on the hw configuration. Once we have > read the hardware revision, we can set the core clock to its > maximum value. > Before then, the clock is set at a rate supported by all MDP5 > revisions. > > Signed-off-by: Stephane Viau <sviau at codeaurora.org>
Thanks, I have this queued up BR, -R > --- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 9 +++++---- > 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 1bb3a28..f2c15bd 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 = { > .count = 4, > .base = { 0x12500, 0x12700, 0x12900, 0x12b00 }, > }, > + .max_clk = 200000000, > }; > > static const struct mdp5_config apq8084_config = { > @@ -99,6 +100,7 @@ static const struct mdp5_config apq8084_config = { > .count = 5, > .base = { 0x12500, 0x12700, 0x12900, 0x12b00, 0x12d00 }, > }, > + .max_clk = 320000000, > }; > > struct mdp5_config_entry { > @@ -420,12 +422,13 @@ struct msm_kms *mdp5_kms_init(struct drm_device *dev) > if (ret) > goto fail; > > - ret = clk_set_rate(mdp5_kms->src_clk, config->max_clk); > - > ret = mdp5_select_hw_cfg(kms); > if (ret) > goto fail; > > + /* TODO: compute core clock rate at runtime */ > + clk_set_rate(mdp5_kms->src_clk, mdp5_kms->hw_cfg->max_clk); > + > /* make sure things are off before attaching iommu (bootloader could > * have left things on, in which case we'll start getting faults if > * we don't disable): > @@ -486,8 +489,6 @@ static struct mdp5_platform_config > *mdp5_get_config(struct platform_device *dev) > /* TODO */ > #endif > config.iommu = iommu_domain_alloc(&platform_bus_type); > - /* TODO hard-coded in downstream mdss, but should it be? */ > - config.max_clk = 200000000; > /* TODO get from DT: */ > config.smp_blk_cnt = 22; > > diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h > b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h > index c91101d..bdbdcda 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 { > struct mdp5_sub_block dspp; > struct mdp5_sub_block ad; > struct mdp5_sub_block intf; > + > + uint32_t max_clk; > }; > extern const struct mdp5_config *mdp5_cfg; > #include "mdp5.xml.h" > @@ -78,7 +80,6 @@ struct mdp5_kms { > /* platform config data (ie. from DT, or pdata) */ > struct mdp5_platform_config { > struct iommu_domain *iommu; > - uint32_t max_clk; > int smp_blk_cnt; > }; > > -- > Qualcomm Innovation Center, Inc. > > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a > Linux Foundation Collaborative Project >