<html><body><p>
<pre>
Hi Alper,
On Sat, 2024-09-28 at 16:02 +0300, Alper Nebi Yasak wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> Hi,
>
> On 2024-09-26 13:22 +03:00, Jason-JH.Lin wrote:
> > Some SoCs not support pre-multiplied pixel formats and extending
> > configuration of OVL pre-multiplied color formats, such as MT8173.
> >
> > Fix the SoC degradation problem by this sreies.
> >
> > ---
> >
> > Change in v7:
> > 1. Add the remove color format comment patch for OVL
> > 2. Fix warning: 'const' type qualifier on return type has no effect
> >
> > [...]
>
> I get warnings and "*ERROR* failed to create property: blend_mode" a
> few
> times until mediatek-drm initializes. It happens on MT8173 and
> MT8183, but
> not on MT8186. Colors are correct, though. (I'm tempted to add
> Tested-by.)
>
MT8186 is using MT8192's compatible name, so its blend_modes suppots
pre-multiplied.
> ------8<------
>
> From MT8173:
>
> [ +0.017201] ------------[ cut here ]------------
> [ +0.009250] WARNING: CPU: 3 PID: 37 at
> drivers/gpu/drm/drm_blend.c:586
> drm_plane_create_blend_mode_property+0xf0/0x110 [drm]
> [ +0.022533] Modules linked in: [...]
> [ +0.158166] CPU: 3 UID: 0 PID: 37 Comm: kworker/u16:1 Tainted:
> G W 6.11.0-next-20240927-deb-00006-ge514a0f89dd9 #
> [ +0.023542] Tainted: [W]=WARN
> [ +0.005936] Hardware name: Google Hana (DT)
> [ +0.008379] Workqueue: events_unbound deferred_probe_work_func
> [ +0.011694] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS
> BTYPE=--)
> [ +0.013959] pc : drm_plane_create_blend_mode_property+0xf0/0x110
> [drm]
> [ +0.013111] lr : mtk_plane_init+0xf4/0x198 [mediatek_drm]
> [ +0.010829] sp : ffff800081d538c0
> [ +0.006634] x29: ffff800081d538c0 x28: ffff0000c431e080 x27:
> ffff0000c19787a8
> [ +0.014314] x26: 0000000000000548 x25: 0000000000000006 x24:
> ffff0000c431f000
> [ +0.014317] x23: 0000000000000035 x22: 0000000000000006 x21:
> ffff0000c0ca1058
> [ +0.014313] x20: 0000000000000006 x19: 0000000000000000 x18:
> ffffffffffffffff
> [ +0.014314] x17: 6f72702065746165 x16: 7263206f74206465 x15:
> ffff0000c414e626
> [ +0.014316] x14: 0000000000000000 x13: 0000000000000028 x12:
> 0101010101010101
> [ +0.014313] x11: 7f7f7f7f7f7f7f7f x10: fefefeff726e6f79 x9 :
> ffff800079e689dc
> [ +0.014316] x8 : ffff0000c5875554 x7 : 00000000eeeeeeee x6 :
> 00000000c0c0c0c0
> [ +0.014314] x5 : 0000000000000000 x4 : ffff0000c0ca1190 x3 :
> ffff0000c0ca1190
> [ +0.014313] x2 : 000000000000ffff x1 : 0000000000000006 x0 :
> ffff0000c0ca1058
> [ +0.014314] Call trace:
> [ +0.004891] drm_plane_create_blend_mode_property+0xf0/0x110 [drm]
> [ +0.012415] mtk_plane_init+0xf4/0x198 [mediatek_drm]
> [ +0.010132] mtk_crtc_create+0x34c/0x858 [mediatek_drm]
> [ +0.010479] mtk_drm_bind+0x4b4/0x600 [mediatek_drm]
> [ +0.009956] try_to_bring_up_aggregate_device+0x21c/0x2e8
> [ +0.010825] __component_add+0xc0/0x1c0
> [ +0.007685] component_add+0x1c/0x38
> [ +0.007163] mtk_disp_rdma_probe+0x148/0x230 [mediatek_drm]
> [ +0.011175] platform_probe+0x70/0xe8
> [ +0.007338] really_probe+0xc8/0x3a0
> [ +0.007161] __driver_probe_device+0x84/0x160
> [ +0.008730] driver_probe_device+0x44/0x130
> [ +0.008379] __device_attach_driver+0xc4/0x170
> [ +0.008905] bus_for_each_drv+0x90/0x100
> [ +0.007855] __device_attach+0xa8/0x1c8
> [ +0.007685] device_initial_probe+0x1c/0x30
> [ +0.008380] bus_probe_device+0xb0/0xc0
> [ +0.007683] deferred_probe_work_func+0xbc/0x120
> [ +0.009253] process_one_work+0x178/0x3d0
> [ +0.008033] worker_thread+0x200/0x3f0
> [ +0.007511] kthread+0xe8/0xf8
> [ +0.006115] ret_from_fork+0x10/0x20
> [ +0.007164] ---[ end trace 0000000000000000 ]---
> [ +0.009278] [drm:mtk_plane_init [mediatek_drm]] *ERROR* failed to
> create property: blend_mode
>
> From MT8183:
>
> [ 13.936989] ------------[ cut here ]------------
> [ 13.946224] WARNING: CPU: 5 PID: 60 at
> drivers/gpu/drm/drm_blend.c:586
> drm_plane_create_blend_mode_property+0xf0/0x110 [drm]
> [ 13.968714] Modules linked in: [...]
> [ 14.116814] CPU: 5 UID: 0 PID: 60 Comm: kworker/u34:2 Tainted:
> G W 6.11.0-next-20240927-deb-00006-ge514a0f89dd9 #1
> [ 14.140323] Tainted: [W]=WARN
> [ 14.146248] Hardware name: Google cozmo board (DT)
> [ 14.155830] Workqueue: events_unbound deferred_probe_work_func
> [ 14.167505] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS
> BTYPE=--)
> [ 14.181440] pc : drm_plane_create_blend_mode_property+0xf0/0x110
> [drm]
> [ 14.194529] lr : mtk_plane_init+0xf4/0x188 [mediatek_drm]
> [ 14.205338] sp : ffff8000804a3860
> [ 14.211960] x29: ffff8000804a3860 x28: ffff715445288080 x27:
> ffff7154417fa748
> [ 14.226247] x26: 0000000000000548 x25: 0000000000000006 x24:
> ffff71544528a000
> [ 14.240536] x23: 0000000000000035 x22: 0000000000000006 x21:
> ffff715445a49ae8
> [ 14.254822] x20: 0000000000000006 x19: 0000000000000000 x18:
> ffffffffffffffff
> [ 14.269110] x17: 6f72702065746165 x16: ffffd6facceae8c0 x15:
> ffff715470421d46
> [ 14.283398] x14: 0000000000000000 x13: 0000000000000028 x12:
> 0101010101010101
> [ 14.297686] x11: 7f7f7f7f7f7f7f7f x10: fefefeff726e6f79 x9 :
> ffffd6fa92d179dc
> [ 14.311973] x8 : ffff715445156ad4 x7 : 00000000eeeeeeee x6 :
> 00000000c0c0c0c0
> [ 14.326261] x5 : 0000000000000000 x4 : ffff715445a49c20 x3 :
> ffff715445a49c20
> [ 14.340549] x2 : 000000000000ffff x1 : 0000000000000006 x0 :
> ffff715445a49ae8
> [ 14.354837] Call trace:
> [ 14.359718] drm_plane_create_blend_mode_property+0xf0/0x110 [drm]
> [ 14.372111] mtk_plane_init+0xf4/0x188 [mediatek_drm]
> [ 14.382224] mtk_crtc_create+0x34c/0x858 [mediatek_drm]
> [ 14.392685] mtk_drm_bind+0x51c/0x600 [mediatek_drm]
> [ 14.402622] try_to_bring_up_aggregate_device+0x21c/0x2e8
> [ 14.413425] __component_add+0xc0/0x1c0
> [ 14.421094] component_add+0x1c/0x38
> [ 14.428241] mtk_dsi_host_attach+0x80/0xe0 [mediatek_drm]
> [ 14.439049] devm_mipi_dsi_attach+0x3c/0xa0
> [ 14.447413] anx7625_link_bridge+0xfc/0x1c8 [anx7625]
> [ 14.457522] dp_aux_ep_probe+0x54/0x110 [drm_dp_aux_bus]
> [ 14.468150] really_probe+0xc8/0x3a0
> [ 14.475296] __driver_probe_device+0x84/0x160
> [ 14.484009] driver_probe_device+0x44/0x130
> [ 14.492374] __device_attach_driver+0xc4/0x170
> [ 14.501261] bus_for_each_drv+0x90/0x100
> [ 14.509103] __device_attach+0xa8/0x1c8
> [ 14.516772] device_initial_probe+0x1c/0x30
> [ 14.525137] bus_probe_device+0xb0/0xc0
> [ 14.532805] deferred_probe_work_func+0xbc/0x120
> [ 14.542040] process_one_work+0x178/0x3d0
> [ 14.550059] worker_thread+0x200/0x3f0
> [ 14.557553] kthread+0xe8/0xf8
> [ 14.563656] ret_from_fork+0x10/0x20
> [ 14.570803] ---[ end trace 0000000000000000 ]---
> [ 14.580052] [drm:mtk_plane_init [mediatek_drm]] *ERROR* failed to
> create property: blend_mode
Take a glimpse of drm_plane_create_blend_mode_property(), it can simply
find the reason here:
/**
* drm_plane_create_blend_mode_property - create a new blend mode
property
* @plane: drm plane
* @supported_modes: bitmask of supported modes, must include
* BIT(DRM_MODE_BLEND_PREMULTI). Current DRM assumption is
* that alpha is premultiplied, and old userspace can break
if
* the property defaults to anything else.
...
* RETURNS:
* Zero for success or -errno
*/
int drm_plane_create_blend_mode_property(struct drm_plane *plane,
unsigned int supported_modes)
{
unsigned int valid_mode_mask = BIT(DRM_MODE_BLEND_PIXEL_NONE) |
BIT(DRM_MODE_BLEND_PREMULTI) |
BIT(DRM_MODE_BLEND_COVERAGE);
...
if (WARN_ON((supported_modes & ~valid_mode_mask) ||
((supported_modes & BIT(DRM_MODE_BLEND_PREMULTI)) == 0)))
return -EINVAL;
...
}
So I think if the SoCs don't support pre-multiplied color formats, then
just not create the blend_mode property and use the coverage mode color
format as default settings for OVL.
I'll send v8 for this.
Thanks for the verification on MT8173, MT8183 and MT8186.
Regards,
Jason-JH.Lin
</pre>
</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ********************
The information contained in this e-mail message (including any
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be
conveyed only to the designated recipient(s). Any use, dissemination,
distribution, printing, retaining or copying of this e-mail (including its
attachments) by unintended recipient(s) is strictly prohibited and may
be unlawful. If you are not an intended recipient of this e-mail, or believe
that you have received this e-mail in error, please notify the sender
immediately (by replying to this e-mail), delete any and all copies of
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!
</pre><!--}-->