From: Stephen Boyd <swboyd@chromium.org> To: Abhinav Kumar <abhinavk@codeaurora.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>, Rob Clark <robdclark@gmail.com>, Rob Herring <robh+dt@kernel.org>, Sean Paul <sean@poorly.run> Cc: Kuogee Hsieh <khsieh@codeaurora.org>, Tanmay Shah <tanmay@codeaurora.org>, Chandan Uddaraju <chandanu@codeaurora.org>, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/5] drm/msm/dp: Store each subblock in the io region Date: Thu, 22 Jul 2021 20:13:46 +0000 [thread overview] Message-ID: <CAE-0n50Lbt0fnhRCnrcaZrM5+sn6giM9meJBEJOZdCS1z98Jzg@mail.gmail.com> (raw) In-Reply-To: <20210722024227.3313096-5-bjorn.andersson@linaro.org> Quoting Bjorn Andersson (2021-07-21 19:42:26) > Not all platforms has DP_P0 at offset 0x1000 from the beginning of the > DP block. So dss_io_data into representing each of the sub-regions, to "So dss_io_data into" doesn't make sense to me. Is some word or words missing? > make it possible in the next patch to specify each of the sub-regions > individually. > > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > drivers/gpu/drm/msm/dp/dp_catalog.c | 64 +++++++++-------------------- > drivers/gpu/drm/msm/dp/dp_parser.c | 30 ++++++++++++-- > drivers/gpu/drm/msm/dp/dp_parser.h | 10 ++++- > 3 files changed, 54 insertions(+), 50 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_parser.c b/drivers/gpu/drm/msm/dp/dp_parser.c > index e68dacef547c..1a10901ae574 100644 > --- a/drivers/gpu/drm/msm/dp/dp_parser.c > +++ b/drivers/gpu/drm/msm/dp/dp_parser.c > @@ -11,6 +11,15 @@ > #include "dp_parser.h" > #include "dp_reg.h" > > +#define DP_DEFAULT_AHB_OFFSET 0x0000 > +#define DP_DEFAULT_AHB_SIZE 0x0200 > +#define DP_DEFAULT_AUX_OFFSET 0x0200 > +#define DP_DEFAULT_AUX_SIZE 0x0200 > +#define DP_DEFAULT_LINK_OFFSET 0x0400 > +#define DP_DEFAULT_LINK_SIZE 0x0C00 > +#define DP_DEFAULT_P0_OFFSET 0x1000 > +#define DP_DEFAULT_P0_SIZE 0x0400 > + > static const struct dp_regulator_cfg sdm845_dp_reg_cfg = { > .num = 2, > .regs = { > @@ -48,12 +57,25 @@ static int dp_parser_ctrl_res(struct dp_parser *parser) > struct dp_io *io = &parser->io; > struct dss_io_data *dss = &io->dp_controller; > > - dss->base = dp_ioremap(pdev, 0, &dss->len); > - if (IS_ERR(dss->base)) { > - DRM_ERROR("unable to remap dp io region: %pe\n", dss->base); > - return PTR_ERR(dss->base); > + dss->ahb = dp_ioremap(pdev, 0, &dss->ahb_len); So many layers of gunky goo! > + if (IS_ERR(dss->ahb)) { > + DRM_ERROR("unable to remap ahb region: %pe\n", dss->ahb); > + return PTR_ERR(dss->ahb); > } > > + if (dss->ahb_len < DP_DEFAULT_P0_OFFSET + DP_DEFAULT_P0_SIZE) { > + DRM_ERROR("legacy memory region not large enough\n"); > + return -EINVAL; > + } > + > + dss->ahb_len = DP_DEFAULT_AHB_SIZE; > + dss->aux = dss->ahb + DP_DEFAULT_AUX_OFFSET; > + dss->aux_len = DP_DEFAULT_AUX_SIZE; > + dss->link = dss->ahb + DP_DEFAULT_LINK_OFFSET; > + dss->link_len = DP_DEFAULT_LINK_SIZE; > + dss->p0 = dss->ahb + DP_DEFAULT_P0_OFFSET; > + dss->p0_len = DP_DEFAULT_P0_SIZE; > + > io->phy = devm_phy_get(&pdev->dev, "dp"); > if (IS_ERR(io->phy)) > return PTR_ERR(io->phy); > diff --git a/drivers/gpu/drm/msm/dp/dp_parser.h b/drivers/gpu/drm/msm/dp/dp_parser.h > index dc62e70b1640..3266b529c090 100644 > --- a/drivers/gpu/drm/msm/dp/dp_parser.h > +++ b/drivers/gpu/drm/msm/dp/dp_parser.h > @@ -26,8 +26,14 @@ enum dp_pm_type { > }; > > struct dss_io_data { > - size_t len; > - void __iomem *base; > + void __iomem *ahb; > + size_t ahb_len; Maybe make another struct and have a few of them here struct dss_io_region { void __iomem *base; size_t len; }; then the code reads as aux.base and aux.len and we know they're closely related. > + void __iomem *aux; > + size_t aux_len; > + void __iomem *link; > + size_t link_len; > + void __iomem *p0; > + size_t p0_len;
WARNING: multiple messages have this Message-ID (diff)
From: Stephen Boyd <swboyd@chromium.org> To: Abhinav Kumar <abhinavk@codeaurora.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>, Rob Clark <robdclark@gmail.com>, Rob Herring <robh+dt@kernel.org>, Sean Paul <sean@poorly.run> Cc: devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kuogee Hsieh <khsieh@codeaurora.org>, Tanmay Shah <tanmay@codeaurora.org>, freedreno@lists.freedesktop.org, Chandan Uddaraju <chandanu@codeaurora.org> Subject: Re: [PATCH 4/5] drm/msm/dp: Store each subblock in the io region Date: Thu, 22 Jul 2021 20:13:46 +0000 [thread overview] Message-ID: <CAE-0n50Lbt0fnhRCnrcaZrM5+sn6giM9meJBEJOZdCS1z98Jzg@mail.gmail.com> (raw) In-Reply-To: <20210722024227.3313096-5-bjorn.andersson@linaro.org> Quoting Bjorn Andersson (2021-07-21 19:42:26) > Not all platforms has DP_P0 at offset 0x1000 from the beginning of the > DP block. So dss_io_data into representing each of the sub-regions, to "So dss_io_data into" doesn't make sense to me. Is some word or words missing? > make it possible in the next patch to specify each of the sub-regions > individually. > > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > drivers/gpu/drm/msm/dp/dp_catalog.c | 64 +++++++++-------------------- > drivers/gpu/drm/msm/dp/dp_parser.c | 30 ++++++++++++-- > drivers/gpu/drm/msm/dp/dp_parser.h | 10 ++++- > 3 files changed, 54 insertions(+), 50 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_parser.c b/drivers/gpu/drm/msm/dp/dp_parser.c > index e68dacef547c..1a10901ae574 100644 > --- a/drivers/gpu/drm/msm/dp/dp_parser.c > +++ b/drivers/gpu/drm/msm/dp/dp_parser.c > @@ -11,6 +11,15 @@ > #include "dp_parser.h" > #include "dp_reg.h" > > +#define DP_DEFAULT_AHB_OFFSET 0x0000 > +#define DP_DEFAULT_AHB_SIZE 0x0200 > +#define DP_DEFAULT_AUX_OFFSET 0x0200 > +#define DP_DEFAULT_AUX_SIZE 0x0200 > +#define DP_DEFAULT_LINK_OFFSET 0x0400 > +#define DP_DEFAULT_LINK_SIZE 0x0C00 > +#define DP_DEFAULT_P0_OFFSET 0x1000 > +#define DP_DEFAULT_P0_SIZE 0x0400 > + > static const struct dp_regulator_cfg sdm845_dp_reg_cfg = { > .num = 2, > .regs = { > @@ -48,12 +57,25 @@ static int dp_parser_ctrl_res(struct dp_parser *parser) > struct dp_io *io = &parser->io; > struct dss_io_data *dss = &io->dp_controller; > > - dss->base = dp_ioremap(pdev, 0, &dss->len); > - if (IS_ERR(dss->base)) { > - DRM_ERROR("unable to remap dp io region: %pe\n", dss->base); > - return PTR_ERR(dss->base); > + dss->ahb = dp_ioremap(pdev, 0, &dss->ahb_len); So many layers of gunky goo! > + if (IS_ERR(dss->ahb)) { > + DRM_ERROR("unable to remap ahb region: %pe\n", dss->ahb); > + return PTR_ERR(dss->ahb); > } > > + if (dss->ahb_len < DP_DEFAULT_P0_OFFSET + DP_DEFAULT_P0_SIZE) { > + DRM_ERROR("legacy memory region not large enough\n"); > + return -EINVAL; > + } > + > + dss->ahb_len = DP_DEFAULT_AHB_SIZE; > + dss->aux = dss->ahb + DP_DEFAULT_AUX_OFFSET; > + dss->aux_len = DP_DEFAULT_AUX_SIZE; > + dss->link = dss->ahb + DP_DEFAULT_LINK_OFFSET; > + dss->link_len = DP_DEFAULT_LINK_SIZE; > + dss->p0 = dss->ahb + DP_DEFAULT_P0_OFFSET; > + dss->p0_len = DP_DEFAULT_P0_SIZE; > + > io->phy = devm_phy_get(&pdev->dev, "dp"); > if (IS_ERR(io->phy)) > return PTR_ERR(io->phy); > diff --git a/drivers/gpu/drm/msm/dp/dp_parser.h b/drivers/gpu/drm/msm/dp/dp_parser.h > index dc62e70b1640..3266b529c090 100644 > --- a/drivers/gpu/drm/msm/dp/dp_parser.h > +++ b/drivers/gpu/drm/msm/dp/dp_parser.h > @@ -26,8 +26,14 @@ enum dp_pm_type { > }; > > struct dss_io_data { > - size_t len; > - void __iomem *base; > + void __iomem *ahb; > + size_t ahb_len; Maybe make another struct and have a few of them here struct dss_io_region { void __iomem *base; size_t len; }; then the code reads as aux.base and aux.len and we know they're closely related. > + void __iomem *aux; > + size_t aux_len; > + void __iomem *link; > + size_t link_len; > + void __iomem *p0; > + size_t p0_len;
next prev parent reply other threads:[~2021-07-22 20:13 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-22 2:42 [PATCH 0/5] drm/msm/dp: Allow variation in register regions Bjorn Andersson 2021-07-22 2:42 ` Bjorn Andersson 2021-07-22 2:42 ` [PATCH 1/5] dt-bindings: msm/dp: Change reg definition Bjorn Andersson 2021-07-22 2:42 ` Bjorn Andersson 2021-07-22 19:33 ` Stephen Boyd 2021-07-22 19:33 ` Stephen Boyd 2021-07-23 20:05 ` abhinavk 2021-07-23 20:05 ` abhinavk 2021-07-29 20:02 ` Rob Herring 2021-07-29 20:02 ` Rob Herring 2021-07-22 2:42 ` [PATCH 2/5] drm/msm/dp: Use devres for ioremap() Bjorn Andersson 2021-07-22 2:42 ` Bjorn Andersson 2021-07-22 20:06 ` Stephen Boyd 2021-07-22 20:06 ` Stephen Boyd 2021-07-23 20:11 ` [Freedreno] " abhinavk 2021-07-23 20:11 ` abhinavk 2021-07-22 2:42 ` [PATCH 3/5] drm/msm/dp: Refactor ioremap wrapper Bjorn Andersson 2021-07-22 2:42 ` Bjorn Andersson 2021-07-22 20:09 ` Stephen Boyd 2021-07-22 20:09 ` Stephen Boyd 2021-07-23 20:16 ` [Freedreno] " abhinavk 2021-07-23 20:16 ` abhinavk 2021-07-22 2:42 ` [PATCH 4/5] drm/msm/dp: Store each subblock in the io region Bjorn Andersson 2021-07-22 2:42 ` Bjorn Andersson 2021-07-22 20:13 ` Stephen Boyd [this message] 2021-07-22 20:13 ` Stephen Boyd 2021-07-23 20:29 ` [Freedreno] " abhinavk 2021-07-23 20:29 ` abhinavk 2021-07-22 2:42 ` [PATCH 5/5] drm/msm/dp: Allow sub-regions to be specified in DT Bjorn Andersson 2021-07-22 2:42 ` Bjorn Andersson 2021-07-22 20:16 ` Stephen Boyd 2021-07-22 20:16 ` Stephen Boyd 2021-07-23 20:33 ` [Freedreno] " abhinavk 2021-07-23 20:33 ` abhinavk
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAE-0n50Lbt0fnhRCnrcaZrM5+sn6giM9meJBEJOZdCS1z98Jzg@mail.gmail.com \ --to=swboyd@chromium.org \ --cc=abhinavk@codeaurora.org \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=chandanu@codeaurora.org \ --cc=daniel@ffwll.ch \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=khsieh@codeaurora.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=robdclark@gmail.com \ --cc=robh+dt@kernel.org \ --cc=sean@poorly.run \ --cc=tanmay@codeaurora.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.