Message ID | 20240620-igt-v3-4-a9d62d2e2c7e@mediatek.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | This series fixes the errors of MediaTek display driver found by IGT. | expand |
> Although the alpha channel in XRGB formats can be ignored, ALPHA_CON > must be configured accordingly when using XRGB formats or it will still > affects CRC generation. affect? Can such a change description become a bit nicer with an additional imperative wording? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.12-rc2#n94 Regards, Markus
On Mon, 2024-10-07 at 13:36 +0200, Markus Elfring wrote: > > Although the alpha channel in XRGB formats can be ignored, > > ALPHA_CON > > must be configured accordingly when using XRGB formats or it will > > still > > affects CRC generation. > > affect? Yes, didn't notice that. This is a typo, but the series has been merged. > > > Can such a change description become a bit nicer with an additional > imperative wording? > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.12-rc2#n94 Honestly, I wasn't familiar with the term "imerative mood" before this. After studying it, I now understand. Thank you for pointing this out; I will keep this in mind for the future. As a result, I asked AI to refine the description using imperative wording as a reference example: "Ensure that ALPHA_CON is configured appropriately when using XRGB formats, even though the alpha channel can be ignored. Failing to do so will affect CRC generation." Regards, Shawn > > Regards, > Markus
diff --git a/drivers/gpu/drm/mediatek/mtk_ethdr.c b/drivers/gpu/drm/mediatek/mtk_ethdr.c index d7d16482c947..5c52e514ae30 100644 --- a/drivers/gpu/drm/mediatek/mtk_ethdr.c +++ b/drivers/gpu/drm/mediatek/mtk_ethdr.c @@ -153,6 +153,7 @@ void mtk_ethdr_layer_config(struct device *dev, unsigned int idx, unsigned int offset = (pending->x & 1) << 31 | pending->y << 16 | pending->x; unsigned int align_width = ALIGN_DOWN(pending->width, 2); unsigned int alpha_con = 0; + bool replace_src_a = false; dev_dbg(dev, "%s+ idx:%d", __func__, idx); @@ -167,7 +168,15 @@ void mtk_ethdr_layer_config(struct device *dev, unsigned int idx, if (state->base.fb && state->base.fb->format->has_alpha) alpha_con = MIXER_ALPHA_AEN | MIXER_ALPHA; - mtk_mmsys_mixer_in_config(priv->mmsys_dev, idx + 1, alpha_con ? false : true, + if (state->base.fb && !state->base.fb->format->has_alpha) { + /* + * Mixer doesn't support CONST_BLD mode, + * use a trick to make the output equivalent + */ + replace_src_a = true; + } + + mtk_mmsys_mixer_in_config(priv->mmsys_dev, idx + 1, replace_src_a, MIXER_ALPHA, pending->x & 1 ? MIXER_INX_MODE_EVEN_EXTEND : MIXER_INX_MODE_BYPASS, align_width / 2 - 1, cmdq_pkt);