Message ID | 20191004233132.194336-1-swboyd@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | soc: qcom: llcc: Name regmaps to avoid collisions | expand |
On Fri, Oct 4, 2019 at 4:31 PM Stephen Boyd <swboyd@chromium.org> wrote: > > We'll end up with debugfs collisions if we don't give names to the > regmaps created inside this driver. Copy the template config over into > this function and give the regmap the same name as the resource name. > > Fixes: 7f9c136216c7 ("soc: qcom: Add broadcast base for Last Level Cache Controller (LLCC)") > Cc: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org> > Cc: Evan Green <evgreen@chromium.org> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > drivers/soc/qcom/llcc-slice.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/soc/qcom/llcc-slice.c b/drivers/soc/qcom/llcc-slice.c > index 9090ea12eaf3..aa342938c403 100644 > --- a/drivers/soc/qcom/llcc-slice.c > +++ b/drivers/soc/qcom/llcc-slice.c > @@ -48,13 +48,6 @@ > > static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER; > > -static const struct regmap_config llcc_regmap_config = { > - .reg_bits = 32, > - .reg_stride = 4, > - .val_bits = 32, > - .fast_io = true, > -}; > - > /** > * llcc_slice_getd - get llcc slice descriptor > * @uid: usecase_id for the client > @@ -314,6 +307,12 @@ static struct regmap *qcom_llcc_init_mmio(struct platform_device *pdev, > { > struct resource *res; > void __iomem *base; > + static struct regmap_config llcc_regmap_config = { > + .reg_bits = 32, > + .reg_stride = 4, > + .val_bits = 32, > + .fast_io = true, > + }; Why did you move this to be a static local? I think it works, but it makes it look like this is a local variable that's possibly used out of scope. Maybe leave it as a global?
Quoting Evan Green (2019-10-07 14:20:47) > On Fri, Oct 4, 2019 at 4:31 PM Stephen Boyd <swboyd@chromium.org> wrote: > > > > We'll end up with debugfs collisions if we don't give names to the > > regmaps created inside this driver. Copy the template config over into > > this function and give the regmap the same name as the resource name. > > > > Fixes: 7f9c136216c7 ("soc: qcom: Add broadcast base for Last Level Cache Controller (LLCC)") > > Cc: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org> > > Cc: Evan Green <evgreen@chromium.org> > > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > > --- > > drivers/soc/qcom/llcc-slice.c | 14 +++++++------- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/soc/qcom/llcc-slice.c b/drivers/soc/qcom/llcc-slice.c > > index 9090ea12eaf3..aa342938c403 100644 > > --- a/drivers/soc/qcom/llcc-slice.c > > +++ b/drivers/soc/qcom/llcc-slice.c > > @@ -48,13 +48,6 @@ > > > > static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER; > > > > -static const struct regmap_config llcc_regmap_config = { > > - .reg_bits = 32, > > - .reg_stride = 4, > > - .val_bits = 32, > > - .fast_io = true, > > -}; > > - > > /** > > * llcc_slice_getd - get llcc slice descriptor > > * @uid: usecase_id for the client > > @@ -314,6 +307,12 @@ static struct regmap *qcom_llcc_init_mmio(struct platform_device *pdev, > > { > > struct resource *res; > > void __iomem *base; > > + static struct regmap_config llcc_regmap_config = { > > + .reg_bits = 32, > > + .reg_stride = 4, > > + .val_bits = 32, > > + .fast_io = true, > > + }; > > Why did you move this to be a static local? I think it works, but it > makes it look like this is a local variable that's possibly used out > of scope. Maybe leave it as a global? And have a followup patch to move it to a static local? Sounds ok to me if you prefer.
diff --git a/drivers/soc/qcom/llcc-slice.c b/drivers/soc/qcom/llcc-slice.c index 9090ea12eaf3..aa342938c403 100644 --- a/drivers/soc/qcom/llcc-slice.c +++ b/drivers/soc/qcom/llcc-slice.c @@ -48,13 +48,6 @@ static struct llcc_drv_data *drv_data = (void *) -EPROBE_DEFER; -static const struct regmap_config llcc_regmap_config = { - .reg_bits = 32, - .reg_stride = 4, - .val_bits = 32, - .fast_io = true, -}; - /** * llcc_slice_getd - get llcc slice descriptor * @uid: usecase_id for the client @@ -314,6 +307,12 @@ static struct regmap *qcom_llcc_init_mmio(struct platform_device *pdev, { struct resource *res; void __iomem *base; + static struct regmap_config llcc_regmap_config = { + .reg_bits = 32, + .reg_stride = 4, + .val_bits = 32, + .fast_io = true, + }; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); if (!res) @@ -323,6 +322,7 @@ static struct regmap *qcom_llcc_init_mmio(struct platform_device *pdev, if (IS_ERR(base)) return ERR_CAST(base); + llcc_regmap_config.name = name; return devm_regmap_init_mmio(&pdev->dev, base, &llcc_regmap_config); }
We'll end up with debugfs collisions if we don't give names to the regmaps created inside this driver. Copy the template config over into this function and give the regmap the same name as the resource name. Fixes: 7f9c136216c7 ("soc: qcom: Add broadcast base for Last Level Cache Controller (LLCC)") Cc: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org> Cc: Evan Green <evgreen@chromium.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/soc/qcom/llcc-slice.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)