Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 350bb412 authored by Lloyd Atkinson's avatar Lloyd Atkinson Committed by Narendra Muppalla
Browse files

drm/msm/sde: list hardwired mixer connections



Express hardwired connections in the hardware catalog between
layer mixers, dspps, and pingpong blocks. Also list out which
mixer pairings are valid.

Change-Id: I06b9c57d79b678df1372293247f2be7ab34950ca
Signed-off-by: default avatarLloyd Atkinson <latkinso@codeaurora.org>
parent 00715485
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -329,7 +329,7 @@ struct sde_ctl_cfg {
 * @id:                index identifying this block
 * @id:                index identifying this block
 * @base               register offset of this block
 * @base               register offset of this block
 * @features           bit mask identifying sub-blocks/features
 * @features           bit mask identifying sub-blocks/features
 * @sblk:              Sub-blocks of SSPP
 * @sblk:              SSPP sub-blocks information
 */
 */
struct sde_sspp_cfg {
struct sde_sspp_cfg {
	SDE_HW_BLK_INFO;
	SDE_HW_BLK_INFO;
@@ -341,11 +341,17 @@ struct sde_sspp_cfg {
 * @id:                index identifying this block
 * @id:                index identifying this block
 * @base               register offset of this block
 * @base               register offset of this block
 * @features           bit mask identifying sub-blocks/features
 * @features           bit mask identifying sub-blocks/features
 * @sblk:              Sub-blocks of SSPP
 * @sblk:              LM Sub-blocks information
 * @dspp:              ID of connected DSPP, DSPP_MAX if unsupported
 * @pingpong:          ID of connected PingPong, PINGPONG_MAX if unsupported
 * @lm_pair_mask:      Bitmask of LMs that can be controlled by same CTL
 */
 */
struct sde_lm_cfg {
struct sde_lm_cfg {
	SDE_HW_BLK_INFO;
	SDE_HW_BLK_INFO;
	const struct sde_lm_sub_blks *sblk;
	const struct sde_lm_sub_blks *sblk;
	u32 dspp;
	u32 pingpong;
	u32 lm_pair_mask;
};
};


/**
/**
+32 −16
Original line number Original line Diff line number Diff line
@@ -315,7 +315,7 @@ static inline int set_cfg_1xx_init(struct sde_mdss_cfg *cfg)
	};
	};


	/* DSPP capability */
	/* DSPP capability */
	static const struct sde_dspp_sub_blks pp = {
	static const struct sde_dspp_sub_blks dspp = {
			.igc = {.id = SDE_DSPP_GC, .base = 0x17c0, .len = 0x0,
			.igc = {.id = SDE_DSPP_GC, .base = 0x17c0, .len = 0x0,
				.version = 0x1},
				.version = 0x1},
		.pcc = {.id = SDE_DSPP_PCC, .base = 0x00, .len = 0x0,
		.pcc = {.id = SDE_DSPP_PCC, .base = 0x00, .len = 0x0,
@@ -331,7 +331,7 @@ static inline int set_cfg_1xx_init(struct sde_mdss_cfg *cfg)
	};
	};


	/* PINGPONG capability */
	/* PINGPONG capability */
	static const struct sde_pingpong_sub_blks p_p = {
	static const struct sde_pingpong_sub_blks pingpong = {
		.te = {.id = SDE_PINGPONG_TE, .base = 0x0000, .len = 0x0,
		.te = {.id = SDE_PINGPONG_TE, .base = 0x0000, .len = 0x0,
			.version = 0x1},
			.version = 0x1},
		.te2 = {.id = SDE_PINGPONG_TE2, .base = 0x2000, .len = 0x0,
		.te2 = {.id = SDE_PINGPONG_TE2, .base = 0x2000, .len = 0x0,
@@ -404,46 +404,62 @@ static inline int set_cfg_1xx_init(struct sde_mdss_cfg *cfg)
		.mixer = {
		.mixer = {
			{.id = LM_0, .base = 0x00045000,
			{.id = LM_0, .base = 0x00045000,
				.features = MIXER_17X_MASK,
				.features = MIXER_17X_MASK,
				.sblk = &lm},
				.sblk = &lm,
				.dspp = DSPP_0,
				.pingpong = PINGPONG_0,
				.lm_pair_mask = (1 << LM_1) },
			{.id = LM_1, .base = 0x00046000,
			{.id = LM_1, .base = 0x00046000,
				.features = MIXER_17X_MASK,
				.features = MIXER_17X_MASK,
				.sblk = &lm},
				.sblk = &lm,
				.dspp = DSPP_1,
				.pingpong = PINGPONG_1,
				.lm_pair_mask = (1 << LM_0) },
			{.id = LM_2, .base = 0x00047000,
			{.id = LM_2, .base = 0x00047000,
				.features = MIXER_17X_MASK,
				.features = MIXER_17X_MASK,
				.sblk = &lm},
				.sblk = &lm,
				.dspp = DSPP_MAX,
				.pingpong = PINGPONG_2,
				.lm_pair_mask = (1 << LM_5) },
			{.id = LM_3, .base = 0x00048000,
			{.id = LM_3, .base = 0x00048000,
				.features = MIXER_17X_MASK,
				.features = MIXER_17X_MASK,
				.sblk = &lm},
				.sblk = &lm,
				.dspp = DSPP_MAX,
				.pingpong = PINGPONG_MAX},
			{.id = LM_4, .base = 0x00049000,
			{.id = LM_4, .base = 0x00049000,
				.features = MIXER_17X_MASK,
				.features = MIXER_17X_MASK,
				.sblk = &lm},
				.sblk = &lm,
				.dspp = DSPP_MAX,
				.pingpong = PINGPONG_MAX},
			{.id = LM_5, .base = 0x0004a000,
			{.id = LM_5, .base = 0x0004a000,
				.features = MIXER_17X_MASK,
				.features = MIXER_17X_MASK,
				.sblk = &lm},
				.sblk = &lm,
				.dspp = DSPP_MAX,
				.pingpong = PINGPONG_3,
				.lm_pair_mask = (1 << LM_2) },
		},
		},
		.dspp_count = 2,
		.dspp_count = 2,
		.dspp = {
		.dspp = {
			{.id = DSPP_0, .base = 0x00055000,
			{.id = DSPP_0, .base = 0x00055000,
			.features = DSPP_17X_MASK,
			.features = DSPP_17X_MASK,
				.sblk = &pp},
				.sblk = &dspp},
			{.id = DSPP_1, .base = 0x00057000,
			{.id = DSPP_1, .base = 0x00057000,
			.features = DSPP_17X_MASK,
			.features = DSPP_17X_MASK,
				.sblk = &pp},
				.sblk = &dspp},
		},
		},
		.pingpong_count = 4,
		.pingpong_count = 4,
		.pingpong = {
		.pingpong = {
			{.id = PINGPONG_0, .base = 0x00071000,
			{.id = PINGPONG_0, .base = 0x00071000,
				.features = PINGPONG_17X_SPLIT_MASK,
				.features = PINGPONG_17X_SPLIT_MASK,
				.sblk = &p_p},
				.sblk = &pingpong},
			{.id = PINGPONG_1, .base = 0x00071800,
			{.id = PINGPONG_1, .base = 0x00071800,
				.features = PINGPONG_17X_SPLIT_MASK,
				.features = PINGPONG_17X_SPLIT_MASK,
				.sblk = &p_p},
				.sblk = &pingpong},
			{.id = PINGPONG_2, .base = 0x00072000,
			{.id = PINGPONG_2, .base = 0x00072000,
				.features = PINGPONG_17X_MASK,
				.features = PINGPONG_17X_MASK,
				.sblk = &p_p},
				.sblk = &pingpong},
			{.id = PINGPONG_3, .base = 0x00072800,
			{.id = PINGPONG_3, .base = 0x00072800,
				.features = PINGPONG_17X_MASK,
				.features = PINGPONG_17X_MASK,
				.sblk = &p_p},
				.sblk = &pingpong},
		},
		},
		.cdm_count = 1,
		.cdm_count = 1,
		.cdm = {
		.cdm = {