summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-02-15 17:01:08 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-02-15 17:01:08 -0800
commitf9116322fac8a41ee153c186560bc31db9ea4bd0 (patch)
treeca596badcd2ee539de25f0f5d35feb6231cf5111
parent169b8fe1c65dda5844d19ea1a3459637fc53bcdc (diff)
parent330ccf18bfb05d116bbdd6f6b4b30fccf44776c3 (diff)
Merge "msm: mdss: Add mdss capabilities for sdm630"
-rw-r--r--drivers/video/fbdev/msm/mdss_debug.c6
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.c6
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp.h4
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pipe.c7
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pp.c2
-rw-r--r--include/uapi/linux/msm_mdp.h1
6 files changed, 19 insertions, 7 deletions
diff --git a/drivers/video/fbdev/msm/mdss_debug.c b/drivers/video/fbdev/msm/mdss_debug.c
index 8d06edf01d1d..3e1dbba7c9ae 100644
--- a/drivers/video/fbdev/msm/mdss_debug.c
+++ b/drivers/video/fbdev/msm/mdss_debug.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2016, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2009-2017, 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
@@ -1362,7 +1362,9 @@ static inline struct mdss_mdp_misr_map *mdss_misr_get_map(u32 block_id,
(mdata->mdp_rev ==
MDSS_MDP_HW_REV_301) ||
(mdata->mdp_rev ==
- MDSS_MDP_HW_REV_320)) {
+ MDSS_MDP_HW_REV_320) ||
+ (mdata->mdp_rev ==
+ MDSS_MDP_HW_REV_330)) {
ctrl_reg += 0x8;
value_reg += 0x8;
}
diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c
index 7efa9674e6e4..d8d11f21f3b2 100644
--- a/drivers/video/fbdev/msm/mdss_mdp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp.c
@@ -2130,6 +2130,7 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata)
mdss_set_quirk(mdata, MDSS_QUIRK_HDR_SUPPORT_ENABLED);
break;
case MDSS_MDP_HW_REV_320:
+ case MDSS_MDP_HW_REV_330:
mdata->max_target_zorder = 7; /* excluding base layer */
mdata->max_cursor_size = 512;
mdata->per_pipe_ib_factor.numer = 8;
@@ -2138,7 +2139,9 @@ static void mdss_mdp_hw_rev_caps_init(struct mdss_data_type *mdata)
mdata->hflip_buffer_reused = false;
mdata->min_prefill_lines = 25;
mdata->has_ubwc = true;
- mdata->pixel_ram_size = 50 * 1024;
+ mdata->pixel_ram_size =
+ (mdata->mdp_rev == MDSS_MDP_HW_REV_320) ? 50 : 40;
+ mdata->pixel_ram_size *= 1024;
mdata->rects_per_sspp[MDSS_MDP_PIPE_TYPE_DMA] = 2;
mem_protect_sd_ctrl_id = MEM_PROTECT_SD_CTRL_SWITCH;
@@ -4876,6 +4879,7 @@ static void apply_dynamic_ot_limit(u32 *ot_lim,
*ot_lim = 6;
break;
case MDSS_MDP_HW_REV_320:
+ case MDSS_MDP_HW_REV_330:
if ((res <= RES_1080p) && (params->frame_rate <= 30))
*ot_lim = 2;
else if ((res <= RES_1080p) && (params->frame_rate <= 60))
diff --git a/drivers/video/fbdev/msm/mdss_mdp.h b/drivers/video/fbdev/msm/mdss_mdp.h
index 3542573b72ed..5e98de043e55 100644
--- a/drivers/video/fbdev/msm/mdss_mdp.h
+++ b/drivers/video/fbdev/msm/mdss_mdp.h
@@ -1299,7 +1299,9 @@ static inline int mdss_mdp_panic_signal_support_mode(
IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
MDSS_MDP_HW_REV_300) ||
IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
- MDSS_MDP_HW_REV_320))
+ MDSS_MDP_HW_REV_320) ||
+ IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
+ MDSS_MDP_HW_REV_330))
signal_mode = MDSS_MDP_PANIC_PER_PIPE_CFG;
return signal_mode;
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pipe.c b/drivers/video/fbdev/msm/mdss_mdp_pipe.c
index bd41cb9e025c..965a6533dfcb 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pipe.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pipe.c
@@ -2410,9 +2410,10 @@ bool mdss_mdp_is_amortizable_pipe(struct mdss_mdp_pipe *pipe,
(mixer->type == MDSS_MDP_MIXER_TYPE_INTF)))
return false;
- /* do not apply for sdm660 in command mode */
- if ((IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev,
- MDSS_MDP_HW_REV_320)) && !mixer->ctl->is_video_mode)
+ /* do not apply for sdm660 & sdm630 in command mode */
+ if ((IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev, MDSS_MDP_HW_REV_320) ||
+ IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev, MDSS_MDP_HW_REV_330))
+ && !mixer->ctl->is_video_mode)
return false;
return true;
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c
index 7212de8a43f9..38bff6b8edee 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pp.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c
@@ -1124,6 +1124,7 @@ static int pp_vig_pipe_setup(struct mdss_mdp_pipe *pipe, u32 *op)
mdata = mdss_mdp_get_mdata();
if (IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev, MDSS_MDP_HW_REV_320) ||
+ IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev, MDSS_MDP_HW_REV_330) ||
IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev, MDSS_MDP_HW_REV_301) ||
IS_MDSS_MAJOR_MINOR_SAME(mdata->mdp_rev, MDSS_MDP_HW_REV_300)) {
if (pipe->src_fmt->is_yuv) {
@@ -7666,6 +7667,7 @@ static int pp_get_driver_ops(struct mdp_pp_driver_ops *ops)
case MDSS_MDP_HW_REV_300:
case MDSS_MDP_HW_REV_301:
case MDSS_MDP_HW_REV_320:
+ case MDSS_MDP_HW_REV_330:
/*
* Some of the REV_300 PP features are same as REV_107.
* Get the driver ops for both the versions and update the
diff --git a/include/uapi/linux/msm_mdp.h b/include/uapi/linux/msm_mdp.h
index fca2a3c2d494..481814cb8498 100644
--- a/include/uapi/linux/msm_mdp.h
+++ b/include/uapi/linux/msm_mdp.h
@@ -119,6 +119,7 @@
#define MDSS_MDP_HW_REV_300 MDSS_MDP_REV(3, 0, 0) /* msm8998 */
#define MDSS_MDP_HW_REV_301 MDSS_MDP_REV(3, 0, 1) /* msm8998 v1.0 */
#define MDSS_MDP_HW_REV_320 MDSS_MDP_REV(3, 2, 0) /* sdm660 */
+#define MDSS_MDP_HW_REV_330 MDSS_MDP_REV(3, 3, 0) /* sdm630 */
enum {
NOTIFY_UPDATE_INIT,