[PATCH RESEND v3 03/15] drm/msm/dp: parse DT from dp_parser_get
Kuogee Hsieh
quic_khsieh at quicinc.com
Fri Jan 26 22:19:45 UTC 2024
On 1/26/2024 10:26 AM, Dmitry Baryshkov wrote:
> It makes little sense to split the submodule get and actual DT parsing.
> Call dp_parser_parse() directly from dp_parser_get(), so that the parser
> data is fully initialised once it is returned to the caller.
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio at linaro.org>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
Tested-by: Kuogee Hsieh <quic_khsieh at quicinc.com>
Reviewed-by: Kuogee Hsieh <quic_khsieh at quicinc.com>
> ---
> drivers/gpu/drm/msm/dp/dp_display.c | 6 ------
> drivers/gpu/drm/msm/dp/dp_parser.c | 8 +++++++-
> drivers/gpu/drm/msm/dp/dp_parser.h | 3 ---
> 3 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index d37d599aec27..67b48f0a6c83 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
> @@ -1266,12 +1266,6 @@ static int dp_display_probe(struct platform_device *pdev)
> return -EPROBE_DEFER;
> }
>
> - rc = dp->parser->parse(dp->parser);
> - if (rc) {
> - DRM_ERROR("device tree parsing failed\n");
> - goto err;
> - }
> -
> rc = dp_power_client_init(dp->power);
> if (rc) {
> DRM_ERROR("Power client create failed\n");
> diff --git a/drivers/gpu/drm/msm/dp/dp_parser.c b/drivers/gpu/drm/msm/dp/dp_parser.c
> index 7032dcc8842b..2d9d126c119b 100644
> --- a/drivers/gpu/drm/msm/dp/dp_parser.c
> +++ b/drivers/gpu/drm/msm/dp/dp_parser.c
> @@ -315,13 +315,19 @@ static int dp_parser_parse(struct dp_parser *parser)
> struct dp_parser *dp_parser_get(struct platform_device *pdev)
> {
> struct dp_parser *parser;
> + int ret;
>
> parser = devm_kzalloc(&pdev->dev, sizeof(*parser), GFP_KERNEL);
> if (!parser)
> return ERR_PTR(-ENOMEM);
>
> - parser->parse = dp_parser_parse;
> parser->pdev = pdev;
>
> + ret = dp_parser_parse(parser);
> + if (ret) {
> + dev_err(&pdev->dev, "device tree parsing failed\n");
> + return ERR_PTR(ret);
> + }
> +
> return parser;
> }
> diff --git a/drivers/gpu/drm/msm/dp/dp_parser.h b/drivers/gpu/drm/msm/dp/dp_parser.h
> index 90a2cdbbe344..4ccc432b4142 100644
> --- a/drivers/gpu/drm/msm/dp/dp_parser.h
> +++ b/drivers/gpu/drm/msm/dp/dp_parser.h
> @@ -67,7 +67,6 @@ struct dss_module_power {
> *
> * @pdev: platform data of the client
> * @mp: gpio, regulator and clock related data
> - * @parse: function to be called by client to parse device tree.
> */
> struct dp_parser {
> struct platform_device *pdev;
> @@ -76,8 +75,6 @@ struct dp_parser {
> u32 max_dp_lanes;
> u32 max_dp_link_rate;
> struct drm_bridge *next_bridge;
> -
> - int (*parse)(struct dp_parser *parser);
> };
>
> /**
>
More information about the dri-devel
mailing list