Loading drivers/video/msm/mdss/mdss.h +1 −0 Original line number Diff line number Diff line Loading @@ -313,6 +313,7 @@ struct mdss_data_type { bool needs_hist_vote; bool has_ubwc; bool has_wb_ubwc; bool has_separate_rotator; u32 default_ot_rd_limit; u32 default_ot_wr_limit; Loading drivers/video/msm/mdss/mdss_mdp.c +2 −3 Original line number Diff line number Diff line Loading @@ -2962,7 +2962,6 @@ static int mdss_mdp_parse_dt_mixer(struct platform_device *pdev) u32 *mixer_offsets = NULL, *dspp_offsets = NULL, *pingpong_offsets = NULL; u32 is_virtual_mixer_req = false; u32 supports_separate_rotator = 0; struct mdss_data_type *mdata = platform_get_drvdata(pdev); Loading Loading @@ -3017,7 +3016,7 @@ static int mdss_mdp_parse_dt_mixer(struct platform_device *pdev) if (rc) goto parse_done; supports_separate_rotator = of_property_read_bool(pdev->dev.of_node, mdata->has_separate_rotator = of_property_read_bool(pdev->dev.of_node, "qcom,mdss-has-separate-rotator"); if (mdata->nmixers_wb) { rc = mdss_mdp_parse_dt_handler(pdev, "qcom,mdss-mixer-wb-off", Loading @@ -3025,7 +3024,7 @@ static int mdss_mdp_parse_dt_mixer(struct platform_device *pdev) mdata->nmixers_wb); if (rc) goto parse_done; } else if (!supports_separate_rotator) { } else if (!mdata->has_separate_rotator) { /* * If writeback mixers are not available, put the number of * writeback mixers equal to number of DMA pipes so that Loading drivers/video/msm/mdss/mdss_mdp.h +6 −0 Original line number Diff line number Diff line Loading @@ -1106,6 +1106,12 @@ static inline bool mdss_mdp_is_ubwc_supported(struct mdss_data_type *mdata) return mdata->has_ubwc; } static inline bool mdss_mdp_is_wb_rotator_supported( struct mdss_data_type *mdata) { return mdata && !mdata->has_separate_rotator; } static inline int mdss_mdp_is_cdm_supported(struct mdss_data_type *mdata, u32 intf_type, u32 mixer_type) { Loading drivers/video/msm/mdss/mdss_smmu.h +4 −3 Original line number Diff line number Diff line /* Copyright (c) 2007-2015, The Linux Foundation. All rights reserved. /* Copyright (c) 2007-2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -60,14 +60,15 @@ static inline bool is_mdss_smmu_compatible_device(const char *str) * mdss_smmu_is_valid_domain_type() * * Used to check if rotator smmu domain is defined or not by checking if * vbif base is defined. As those are associated. * vbif base is defined and wb rotator exists. As those are associated. */ static inline bool mdss_smmu_is_valid_domain_type(struct mdss_data_type *mdata, int domain_type) { if ((domain_type == MDSS_IOMMU_DOMAIN_ROT_UNSECURE || domain_type == MDSS_IOMMU_DOMAIN_ROT_SECURE) && !mdss_mdp_is_nrt_vbif_base_defined(mdata)) (!mdss_mdp_is_wb_rotator_supported(mdata) || !mdss_mdp_is_nrt_vbif_base_defined(mdata))) return false; return true; } Loading Loading
drivers/video/msm/mdss/mdss.h +1 −0 Original line number Diff line number Diff line Loading @@ -313,6 +313,7 @@ struct mdss_data_type { bool needs_hist_vote; bool has_ubwc; bool has_wb_ubwc; bool has_separate_rotator; u32 default_ot_rd_limit; u32 default_ot_wr_limit; Loading
drivers/video/msm/mdss/mdss_mdp.c +2 −3 Original line number Diff line number Diff line Loading @@ -2962,7 +2962,6 @@ static int mdss_mdp_parse_dt_mixer(struct platform_device *pdev) u32 *mixer_offsets = NULL, *dspp_offsets = NULL, *pingpong_offsets = NULL; u32 is_virtual_mixer_req = false; u32 supports_separate_rotator = 0; struct mdss_data_type *mdata = platform_get_drvdata(pdev); Loading Loading @@ -3017,7 +3016,7 @@ static int mdss_mdp_parse_dt_mixer(struct platform_device *pdev) if (rc) goto parse_done; supports_separate_rotator = of_property_read_bool(pdev->dev.of_node, mdata->has_separate_rotator = of_property_read_bool(pdev->dev.of_node, "qcom,mdss-has-separate-rotator"); if (mdata->nmixers_wb) { rc = mdss_mdp_parse_dt_handler(pdev, "qcom,mdss-mixer-wb-off", Loading @@ -3025,7 +3024,7 @@ static int mdss_mdp_parse_dt_mixer(struct platform_device *pdev) mdata->nmixers_wb); if (rc) goto parse_done; } else if (!supports_separate_rotator) { } else if (!mdata->has_separate_rotator) { /* * If writeback mixers are not available, put the number of * writeback mixers equal to number of DMA pipes so that Loading
drivers/video/msm/mdss/mdss_mdp.h +6 −0 Original line number Diff line number Diff line Loading @@ -1106,6 +1106,12 @@ static inline bool mdss_mdp_is_ubwc_supported(struct mdss_data_type *mdata) return mdata->has_ubwc; } static inline bool mdss_mdp_is_wb_rotator_supported( struct mdss_data_type *mdata) { return mdata && !mdata->has_separate_rotator; } static inline int mdss_mdp_is_cdm_supported(struct mdss_data_type *mdata, u32 intf_type, u32 mixer_type) { Loading
drivers/video/msm/mdss/mdss_smmu.h +4 −3 Original line number Diff line number Diff line /* Copyright (c) 2007-2015, The Linux Foundation. All rights reserved. /* Copyright (c) 2007-2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -60,14 +60,15 @@ static inline bool is_mdss_smmu_compatible_device(const char *str) * mdss_smmu_is_valid_domain_type() * * Used to check if rotator smmu domain is defined or not by checking if * vbif base is defined. As those are associated. * vbif base is defined and wb rotator exists. As those are associated. */ static inline bool mdss_smmu_is_valid_domain_type(struct mdss_data_type *mdata, int domain_type) { if ((domain_type == MDSS_IOMMU_DOMAIN_ROT_UNSECURE || domain_type == MDSS_IOMMU_DOMAIN_ROT_SECURE) && !mdss_mdp_is_nrt_vbif_base_defined(mdata)) (!mdss_mdp_is_wb_rotator_supported(mdata) || !mdss_mdp_is_nrt_vbif_base_defined(mdata))) return false; return true; } Loading