.max_clk = 320000000,
};
-static const struct mdp5_cfg_hw msm8998_config = {
- .name = "msm8998",
- .mdp = {
- .count = 1,
- .caps = MDP_CAP_DSC |
- MDP_CAP_CDM |
- MDP_CAP_SRC_SPLIT |
- 0,
- },
- .ctl = {
- .count = 5,
- .base = { 0x01000, 0x01200, 0x01400, 0x01600, 0x01800 },
- .flush_hw_mask = 0xf7ffffff,
- },
- .pipe_vig = {
- .count = 4,
- .base = { 0x04000, 0x06000, 0x08000, 0x0a000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SCALE |
- MDP_PIPE_CAP_CSC |
- MDP_PIPE_CAP_DECIMATION |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_rgb = {
- .count = 4,
- .base = { 0x14000, 0x16000, 0x18000, 0x1a000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SCALE |
- MDP_PIPE_CAP_DECIMATION |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_dma = {
- .count = 2, /* driver supports max of 2 currently */
- .base = { 0x24000, 0x26000, 0x28000, 0x2a000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_cursor = {
- .count = 2,
- .base = { 0x34000, 0x36000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SW_PIX_EXT |
- MDP_PIPE_CAP_CURSOR |
- 0,
- },
-
- .lm = {
- .count = 6,
- .base = { 0x44000, 0x45000, 0x46000, 0x47000, 0x48000, 0x49000 },
- .instances = {
- { .id = 0, .pp = 0, .dspp = 0,
- .caps = MDP_LM_CAP_DISPLAY |
- MDP_LM_CAP_PAIR, },
- { .id = 1, .pp = 1, .dspp = 1,
- .caps = MDP_LM_CAP_DISPLAY, },
- { .id = 2, .pp = 2, .dspp = -1,
- .caps = MDP_LM_CAP_DISPLAY |
- MDP_LM_CAP_PAIR, },
- { .id = 3, .pp = -1, .dspp = -1,
- .caps = MDP_LM_CAP_WB, },
- { .id = 4, .pp = -1, .dspp = -1,
- .caps = MDP_LM_CAP_WB, },
- { .id = 5, .pp = 3, .dspp = -1,
- .caps = MDP_LM_CAP_DISPLAY, },
- },
- .nb_stages = 8,
- .max_width = 2560,
- .max_height = 0xFFFF,
- },
- .dspp = {
- .count = 2,
- .base = { 0x54000, 0x56000 },
- },
- .ad = {
- .count = 3,
- .base = { 0x78000, 0x78800, 0x79000 },
- },
- .pp = {
- .count = 4,
- .base = { 0x70000, 0x70800, 0x71000, 0x71800 },
- },
- .cdm = {
- .count = 1,
- .base = { 0x79200 },
- },
- .dsc = {
- .count = 2,
- .base = { 0x80000, 0x80400 },
- },
- .intf = {
- .base = { 0x6a000, 0x6a800, 0x6b000, 0x6b800, 0x6c000 },
- .connect = {
- [0] = INTF_eDP,
- [1] = INTF_DSI,
- [2] = INTF_DSI,
- [3] = INTF_HDMI,
- },
- },
- .max_clk = 412500000,
-};
-
-static const struct mdp5_cfg_hw sdm630_config = {
- .name = "sdm630",
- .mdp = {
- .count = 1,
- .caps = MDP_CAP_CDM |
- MDP_CAP_SRC_SPLIT |
- 0,
- },
- .ctl = {
- .count = 5,
- .base = { 0x01000, 0x01200, 0x01400, 0x01600, 0x01800 },
- .flush_hw_mask = 0xf4ffffff,
- },
- .pipe_vig = {
- .count = 1,
- .base = { 0x04000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SCALE |
- MDP_PIPE_CAP_CSC |
- MDP_PIPE_CAP_DECIMATION |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_rgb = {
- .count = 4,
- .base = { 0x14000, 0x16000, 0x18000, 0x1a000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SCALE |
- MDP_PIPE_CAP_DECIMATION |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_dma = {
- .count = 2, /* driver supports max of 2 currently */
- .base = { 0x24000, 0x26000, 0x28000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_cursor = {
- .count = 1,
- .base = { 0x34000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SW_PIX_EXT |
- MDP_PIPE_CAP_CURSOR |
- 0,
- },
-
- .lm = {
- .count = 2,
- .base = { 0x44000, 0x46000 },
- .instances = {
- { .id = 0, .pp = 0, .dspp = 0,
- .caps = MDP_LM_CAP_DISPLAY |
- MDP_LM_CAP_PAIR, },
- { .id = 1, .pp = 1, .dspp = -1,
- .caps = MDP_LM_CAP_WB, },
- },
- .nb_stages = 8,
- .max_width = 2048,
- .max_height = 0xFFFF,
- },
- .dspp = {
- .count = 1,
- .base = { 0x54000 },
- },
- .ad = {
- .count = 2,
- .base = { 0x78000, 0x78800 },
- },
- .pp = {
- .count = 3,
- .base = { 0x70000, 0x71000, 0x72000 },
- },
- .cdm = {
- .count = 1,
- .base = { 0x79200 },
- },
- .intf = {
- .base = { 0x6a000, 0x6a800 },
- .connect = {
- [0] = INTF_DISABLED,
- [1] = INTF_DSI,
- },
- },
- .max_clk = 412500000,
-};
-
-static const struct mdp5_cfg_hw sdm660_config = {
- .name = "sdm660",
- .mdp = {
- .count = 1,
- .caps = MDP_CAP_DSC |
- MDP_CAP_CDM |
- MDP_CAP_SRC_SPLIT |
- 0,
- },
- .ctl = {
- .count = 5,
- .base = { 0x01000, 0x01200, 0x01400, 0x01600, 0x01800 },
- .flush_hw_mask = 0xf4ffffff,
- },
- .pipe_vig = {
- .count = 2,
- .base = { 0x04000, 0x6000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SCALE |
- MDP_PIPE_CAP_CSC |
- MDP_PIPE_CAP_DECIMATION |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_rgb = {
- .count = 4,
- .base = { 0x14000, 0x16000, 0x18000, 0x1a000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SCALE |
- MDP_PIPE_CAP_DECIMATION |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_dma = {
- .count = 2, /* driver supports max of 2 currently */
- .base = { 0x24000, 0x26000, 0x28000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SW_PIX_EXT |
- 0,
- },
- .pipe_cursor = {
- .count = 1,
- .base = { 0x34000 },
- .caps = MDP_PIPE_CAP_HFLIP |
- MDP_PIPE_CAP_VFLIP |
- MDP_PIPE_CAP_SW_PIX_EXT |
- MDP_PIPE_CAP_CURSOR |
- 0,
- },
-
- .lm = {
- .count = 4,
- .base = { 0x44000, 0x45000, 0x46000, 0x49000 },
- .instances = {
- { .id = 0, .pp = 0, .dspp = 0,
- .caps = MDP_LM_CAP_DISPLAY |
- MDP_LM_CAP_PAIR, },
- { .id = 1, .pp = 1, .dspp = 1,
- .caps = MDP_LM_CAP_DISPLAY, },
- { .id = 2, .pp = 2, .dspp = -1,
- .caps = MDP_LM_CAP_DISPLAY |
- MDP_LM_CAP_PAIR, },
- { .id = 3, .pp = 3, .dspp = -1,
- .caps = MDP_LM_CAP_WB, },
- },
- .nb_stages = 8,
- .max_width = 2560,
- .max_height = 0xFFFF,
- },
- .dspp = {
- .count = 2,
- .base = { 0x54000, 0x56000 },
- },
- .ad = {
- .count = 2,
- .base = { 0x78000, 0x78800 },
- },
- .pp = {
- .count = 5,
- .base = { 0x70000, 0x70800, 0x71000, 0x71800, 0x72000 },
- },
- .cdm = {
- .count = 1,
- .base = { 0x79200 },
- },
- .dsc = {
- .count = 2,
- .base = { 0x80000, 0x80400 },
- },
- .intf = {
- .base = { 0x6a000, 0x6a800, 0x6b000, 0x6b800 },
- .connect = {
- [0] = INTF_DISABLED,
- [1] = INTF_DSI,
- [2] = INTF_DSI,
- [3] = INTF_HDMI,
- },
- },
- .max_clk = 412500000,
-};
-
static const struct mdp5_cfg_handler cfg_handlers_v1[] = {
{ .revision = 0, .config = { .hw = &msm8x74v1_config } },
{ .revision = 1, .config = { .hw = &msm8x26_config } },
{ .revision = 16, .config = { .hw = &msm8x53_config } },
};
-static const struct mdp5_cfg_handler cfg_handlers_v3[] = {
- { .revision = 0, .config = { .hw = &msm8998_config } },
- { .revision = 2, .config = { .hw = &sdm660_config } },
- { .revision = 3, .config = { .hw = &sdm630_config } },
-};
-
const struct mdp5_cfg_hw *mdp5_cfg_get_hw_config(struct mdp5_cfg_handler *cfg_handler)
{
return cfg_handler->config.hw;
cfg_handlers = cfg_handlers_v1;
num_handlers = ARRAY_SIZE(cfg_handlers_v1);
break;
- case 3:
- cfg_handlers = cfg_handlers_v3;
- num_handlers = ARRAY_SIZE(cfg_handlers_v3);
- break;
default:
DRM_DEV_ERROR(dev->dev, "unexpected MDP major version: v%d.%d\n",
major, minor);