Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3957072pxv; Mon, 26 Jul 2021 16:54:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzQQqBtLBqz0YZXU7U3CrQbXWi44yHxcpGT17P4rply19ksq+J6/rNv6Yqd43RyxamTdQIc X-Received: by 2002:a92:7312:: with SMTP id o18mr14266260ilc.289.1627343658125; Mon, 26 Jul 2021 16:54:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627343658; cv=none; d=google.com; s=arc-20160816; b=naicReFG9j6Z+OKVfEoe13Xky0TbqTd4Vv8zLSeNfZSeUh1rubT3uHDKWOtqqU9t8j ytG+K2D9XlQeUP7hIWsPtS2vtoQaXD+9ceNfZ6edpetWm6fiV6cJu8Z+d0NVX95dX8uI kK8seYaRNfTb2MWTpeItveml2R81apTsEC7liLyy5OkAUeedef9TX1le/+VDesEY+cd3 J45yi3b0gXLxqZqEsbMrziTMyxPW2/UjEEtbecA8thz3cQBPyNlh0O8Vx/8vzSaPqh6l MK70Xa0Yo8SDu8nwCJ6jTG4EK+Rr1+Q14dx8kZCPQUtK9W80R+rsgkuP7xgl89Ql2PrY xARQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:user-agent:from :references:in-reply-to:mime-version:dkim-signature; bh=6Gx3kdJFNm/135gslaiOBYRLWUB5Dek5XFa229mUI8k=; b=OkzyXswbq3CJRTtWT3o4wV9CSO1RR/Ibkw2qDVAiyN+QZl/d9e7xN5dJQLnXx/kCTA /sjUZ9UAolHJsrsoaLEdbdM5sI4JiuZN2LSZSklmk223oTRPxitpWs/MEuTMV7xiukOq afy1+JUukuB44aWrhRSU/iqHGHf6FqYOR3vgMHj2XH/2LL6TPJA/6m/NAFxSMgzU3vfR dWSmkob7VC+JcLP4Ges0ylI9FucJalWMoSK7mVT8xAw+69HyYJ+dLw/iuvbE4RHyAMGu E/8l9xMZep2iIRoZ6VaKiDBQBs+u3YbnyNqIYFbBv7lLiMo9vqktNGjGLkdRcbuMd+fN gtCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=jE3Q3MYL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o14si1329618ioo.4.2021.07.26.16.54.05; Mon, 26 Jul 2021 16:54:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=jE3Q3MYL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233945AbhGZXKw (ORCPT + 99 others); Mon, 26 Jul 2021 19:10:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233380AbhGZXKv (ORCPT ); Mon, 26 Jul 2021 19:10:51 -0400 Received: from mail-oi1-x229.google.com (mail-oi1-x229.google.com [IPv6:2607:f8b0:4864:20::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E15E7C061757 for ; Mon, 26 Jul 2021 16:51:18 -0700 (PDT) Received: by mail-oi1-x229.google.com with SMTP id a19so13026777oiw.6 for ; Mon, 26 Jul 2021 16:51:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:in-reply-to:references:from:user-agent:date:message-id :subject:to:cc; bh=6Gx3kdJFNm/135gslaiOBYRLWUB5Dek5XFa229mUI8k=; b=jE3Q3MYLf8EehxqYQYMhN3W4udoK0AqV8y3DHFgmw3ceKxfLhUI71lkzfZrz+ljuKv vgdCCNqFN491gJMsmja2VQ+r3WokPgTpKxjj4V2QWxJYr3TqYRBEo+7b/DfhtpezmTih 94hnhrJ86/UPMDU7prDAkEsDJ/9AFUY4mA4X0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from :user-agent:date:message-id:subject:to:cc; bh=6Gx3kdJFNm/135gslaiOBYRLWUB5Dek5XFa229mUI8k=; b=f1VuQvkI5GeYoYr1K1HxlgY5z+TVqpfzU5a376oyOOCJl2G4hT/VyO2JsA/nQpmR18 MPEAgL8ZgtoSgKc9FDogRkaDomKY6NpST7aI9hf03nRBF5Cf5TuEchi/NeIBIpDmyrq5 d/g21AvlMBfAjhJ25CbXZhMBigCS3gNBAPk8a0NHrKPuunsihYEAc9piGlkvifnpwAse O4NiJvBSOZU61wO6VOaJ2A7FgSULQoDt7y5sNzj2HjU3F++KA7uGoq3BhKvG4FmdJ9vU HpJlEoHKT7lCgYinNxaCCcC/so7qFp8fOtN4b6uAigEnurwrWgAh9t9J7Jx7aMwsZobB GSHg== X-Gm-Message-State: AOAM533z9GEohys3sfAUwR1egmGByT+GJGX+FI/MBM8CAjr2OI9K6gEH Jy4oIfP8/Az+JRIGSyiOLzaArOk94DmbobUeJOK+7A== X-Received: by 2002:a05:6808:114a:: with SMTP id u10mr13160515oiu.19.1627343478345; Mon, 26 Jul 2021 16:51:18 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 26 Jul 2021 19:51:17 -0400 MIME-Version: 1.0 In-Reply-To: <20210725042436.3967173-4-bjorn.andersson@linaro.org> References: <20210725042436.3967173-1-bjorn.andersson@linaro.org> <20210725042436.3967173-4-bjorn.andersson@linaro.org> From: Stephen Boyd User-Agent: alot/0.9.1 Date: Mon, 26 Jul 2021 19:51:17 -0400 Message-ID: Subject: Re: [PATCH 3/5] drm/msm/dp: Support up to 3 DP controllers To: Abhinav Kumar , Bjorn Andersson , Daniel Vetter , David Airlie , Dmitry Baryshkov , Kalyan Thota , Kuogee Hsieh , Rob Clark , Sean Paul Cc: Rob Herring , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Bjorn Andersson (2021-07-24 21:24:33) > diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c > index 59ffd6c8f41f..92b7646a1bb7 100644 > --- a/drivers/gpu/drm/msm/dp/dp_display.c > +++ b/drivers/gpu/drm/msm/dp/dp_display.c > @@ -238,8 +251,11 @@ static int dp_display_bind(struct device *dev, struct device *master, > } > > rc = dp_register_audio_driver(dev, dp->audio); > - if (rc) > + if (rc) { > DRM_ERROR("Audio registration Dp failed\n"); > + goto end; > + } > + > > end: > return rc; This hunk looks useless. Drop it? > @@ -1205,6 +1221,26 @@ int dp_display_request_irq(struct msm_dp *dp_display) > return 0; > } > > +static int dp_display_get_id(struct platform_device *pdev) > +{ > + const struct msm_dp_config *cfg = of_device_get_match_data(&pdev->dev); > + struct resource *res; > + int i; > + > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + if (!res) > + return -EINVAL; > + > + for (i = 0; i < cfg->num_dp; i++) { > + if (cfg->io_start[i] == res->start) > + return i; > + } > + > + dev_err(&pdev->dev, "unknown displayport instance\n"); > + return -EINVAL; > +} > + > static int dp_display_probe(struct platform_device *pdev) > { > int rc = 0; > @@ -1219,6 +1255,10 @@ static int dp_display_probe(struct platform_device *pdev) > if (!dp) > return -ENOMEM; > > + dp->id = dp_display_get_id(pdev); > + if (dp->id < 0) > + return -EINVAL; > + > dp->pdev = pdev; > dp->name = "drm_dp"; > > diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h > index e9232032b266..62d54ef6c2c4 100644 > --- a/drivers/gpu/drm/msm/msm_drv.h > +++ b/drivers/gpu/drm/msm/msm_drv.h > @@ -161,7 +161,7 @@ struct msm_drm_private { > /* DSI is shared by mdp4 and mdp5 */ > struct msm_dsi *dsi[2]; > > - struct msm_dp *dp; > + struct msm_dp *dp[3]; It would be nice to either make this dynamically sized (probably little gain), somehow make a BUILD_BUG_ON(), or have a WARN_ON if ARRAY_SIZE(dp) is less than a num_dp so we know somebody messed up.