<pre>
Hi Eugen,
Thanks for the reviews.
On Thu, 2023-08-03 at 16:22 +0300, Eugen Hristev wrote:
> On 8/2/23 17:47, Jason-JH.Lin wrote:
> > In mtk_drm_kms_init(), each element in all_drm_priv should has one
> > display path private data only, such as:
> > all_drm_priv[CRTC_MAIN] should has main_path data only
> > all_drm_priv[CRTC_EXT] should has ext_path data only
> > all_drm_priv[CRTC_THIRD] should has third_path data only
>
> s/should has/should have/ ?
>
Although each element is singular, `should have` is correct.
`should` is an auxiliary verb, so we can only use infinitive verbs
after that.
So this part of comment should be like this:
In mtk_drm_kms_init(), each element in all_drm_priv should have one
display path private data, such as:
all_drm_priv[CRTC_MAIN] should only have main_path data
all_drm_priv[CRTC_EXT] should only have ext_path data
all_drm_priv[CRTC_THIRD] should only have third_path data
Right?
> >
> > So we need to add the length checking for each display path before
> > assigning their drm private data into all_drm_priv array.
> >
> > Fixes: 1ef7ed48356c ("drm/mediatek: Modify mediatek-drm for mt8195
> > multi mmsys support")
> > Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> > angelogioacchino.delregno@collabora.com>
> > Reviewed-by: CK Hu <ck.hu@mediatek.com>
> > ---
> > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 16 +++++++++++++---
> > 1 file changed, 13 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> > b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> > index 89a38561ba27..c12886f31e54 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> > @@ -351,6 +351,7 @@ static bool mtk_drm_get_all_drm_priv(struct
> > device *dev)
> > {
> > struct mtk_drm_private *drm_priv = dev_get_drvdata(dev);
> > struct mtk_drm_private *all_drm_priv[MAX_CRTC];
> > +struct mtk_drm_private *temp_drm_priv;
> > struct device_node *phandle = dev->parent->of_node;
> > const struct of_device_id *of_id;
> > struct device_node *node;
> > @@ -373,9 +374,18 @@ static bool mtk_drm_get_all_drm_priv(struct
> > device *dev)
> > if (!drm_dev || !dev_get_drvdata(drm_dev))
> > continue;
> >
> > -all_drm_priv[cnt] = dev_get_drvdata(drm_dev);
> > -if (all_drm_priv[cnt] && all_drm_priv[cnt]-
> > >mtk_drm_bound)
> > -cnt++;
> > +temp_drm_priv = dev_get_drvdata(drm_dev);
> > +if (temp_drm_priv) {
>
> This is inside a 'for' loop right ?
> Why don't you just 'continue' if temp_drm_priv is null ?
>
Yes, you are right.
I'll use `if (!temp_drm_priv) continue;` to make this statement
simpler. Thanks.
Regards,
Jason-JH.Lin.
>
> > +if (temp_drm_priv->mtk_drm_bound)
> > +cnt++;
> > +
> > +if (temp_drm_priv->data->main_len)
> > +all_drm_priv[CRTC_MAIN] =
> > temp_drm_priv;
> > +else if (temp_drm_priv->data->ext_len)
> > +all_drm_priv[CRTC_EXT] = temp_drm_priv;
> > +else if (temp_drm_priv->data->third_len)
> > +all_drm_priv[CRTC_THIRD] =
> > temp_drm_priv;
> > +}
> > }
> >
> > if (drm_priv->data->mmsys_dev_num == cnt) {
>
>
</pre><!--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><!--}-->