The latest audmix patch-set (v5) had the "model" attribute removed as
requested by Nicolin Chen, but looks like (v4) version of DAI driver
reached "for-next" branch - fix this by removing "model" attribute.
Asside of this fix object reference leaks in machine probe reported by
Julia Lawall.
Viorel Suman (3):
ASoC: fsl_audmix: remove "model" attribute
dt-bindings: fsl,audmix: remove "model" attribute
ASoC: imx-audmix: fix object reference leaks in probe
Changes since V1:
a) Removed "model" attribute from dt-bindings documentation
b) Adressed Daniel's comments
.../devicetree/bindings/sound/fsl,audmix.txt | 4 --
sound/soc/fsl/fsl_audmix.c | 43 ++++++++++++----------
sound/soc/fsl/imx-audmix.c | 4 ++
3 files changed, 27 insertions(+), 24 deletions(-)
--
2.7.4
Release the reference to the underlying device taken
by of_find_device_by_node() call.
Signed-off-by: Viorel Suman <[email protected]>
Reported-by: Julia Lawall <[email protected]>
---
sound/soc/fsl/imx-audmix.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sound/soc/fsl/imx-audmix.c b/sound/soc/fsl/imx-audmix.c
index 7983bd3..9aaf3e5 100644
--- a/sound/soc/fsl/imx-audmix.c
+++ b/sound/soc/fsl/imx-audmix.c
@@ -171,6 +171,7 @@ static int imx_audmix_probe(struct platform_device *pdev)
np->full_name);
return -EINVAL;
}
+ put_device(&audmix_pdev->dev);
num_dai = of_count_phandle_with_args(audmix_np, "dais", NULL);
if (num_dai != FSL_AUDMIX_MAX_DAIS) {
@@ -216,6 +217,7 @@ static int imx_audmix_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "failed to find SAI platform device\n");
return -EINVAL;
}
+ put_device(&cpu_pdev->dev);
dai_name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s%s",
fe_name_pref, args.np->full_name + 1);
@@ -280,6 +282,8 @@ static int imx_audmix_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "failed to find SAI platform device\n");
return -EINVAL;
}
+ put_device(&cpu_pdev->dev);
+
priv->cpu_mclk = devm_clk_get(&cpu_pdev->dev, "mclk1");
if (IS_ERR(priv->cpu_mclk)) {
ret = PTR_ERR(priv->cpu_mclk);
--
2.7.4
Remove "model" attribute.
Signed-off-by: Viorel Suman <[email protected]>
---
Documentation/devicetree/bindings/sound/fsl,audmix.txt | 4 ----
1 file changed, 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/fsl,audmix.txt b/Documentation/devicetree/bindings/sound/fsl,audmix.txt
index 45f807e..840b7e0 100644
--- a/Documentation/devicetree/bindings/sound/fsl,audmix.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,audmix.txt
@@ -38,9 +38,6 @@ Device driver required properties:
to SAI interfaces to be provided, the first SAI in the
list being used to route the AUDMIX output.
- - model : Must contain machine driver name which will configure
- and instantiate the appropriate audio card.
-
Device driver configuration example:
======================================
audmix: audmix@59840000 {
@@ -50,5 +47,4 @@ Device driver configuration example:
clock-names = "ipg";
power-domains = <&pd_audmix>;
dais = <&sai4>, <&sai5>;
- model = "imx-audmix";
};
--
2.7.4
Use "of_device_id.data" to specify the machine driver
instead of "model" DTS attribute.
Signed-off-by: Viorel Suman <[email protected]>
---
sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++--------------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/sound/soc/fsl/fsl_audmix.c b/sound/soc/fsl/fsl_audmix.c
index dabde03..dc802d5 100644
--- a/sound/soc/fsl/fsl_audmix.c
+++ b/sound/soc/fsl/fsl_audmix.c
@@ -445,13 +445,29 @@ static const struct regmap_config fsl_audmix_regmap_config = {
.cache_type = REGCACHE_FLAT,
};
+static const struct of_device_id fsl_audmix_ids[] = {
+ {
+ .compatible = "fsl,imx8qm-audmix",
+ .data = "imx-audmix",
+ },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, fsl_audmix_ids);
+
static int fsl_audmix_probe(struct platform_device *pdev)
{
struct fsl_audmix *priv;
struct resource *res;
+ const char *mdrv;
+ const struct of_device_id *of_id;
void __iomem *regs;
int ret;
- const char *sprop;
+
+ of_id = of_match_device(fsl_audmix_ids, &pdev->dev);
+ if (!of_id || !of_id->data)
+ return -EINVAL;
+
+ mdrv = of_id->data;
priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
if (!priv)
@@ -487,19 +503,12 @@ static int fsl_audmix_probe(struct platform_device *pdev)
return ret;
}
- sprop = of_get_property(pdev->dev.of_node, "model", NULL);
- if (sprop) {
- priv->pdev = platform_device_register_data(&pdev->dev, sprop, 0,
- NULL, 0);
- if (IS_ERR(priv->pdev)) {
- ret = PTR_ERR(priv->pdev);
- dev_err(&pdev->dev,
- "failed to register platform %s: %d\n", sprop,
- ret);
- }
- } else {
- dev_err(&pdev->dev, "[model] attribute missing.\n");
- ret = -EINVAL;
+ priv->pdev = platform_device_register_data(&pdev->dev, mdrv, 0, NULL,
+ 0);
+ if (IS_ERR(priv->pdev)) {
+ ret = PTR_ERR(priv->pdev);
+ dev_err(&pdev->dev, "failed to register platform %s: %d\n",
+ mdrv, ret);
}
return ret;
@@ -553,12 +562,6 @@ static const struct dev_pm_ops fsl_audmix_pm = {
pm_runtime_force_resume)
};
-static const struct of_device_id fsl_audmix_ids[] = {
- { .compatible = "fsl,imx8qm-audmix", },
- { /* sentinel */ }
-};
-MODULE_DEVICE_TABLE(of, fsl_audmix_ids);
-
static struct platform_driver fsl_audmix_driver = {
.probe = fsl_audmix_probe,
.remove = fsl_audmix_remove,
--
2.7.4
On Tue, Apr 09, 2019 at 11:27:40AM +0000, Viorel Suman wrote:
> Remove "model" attribute.
>
> Signed-off-by: Viorel Suman <[email protected]>
Acked-by: Nicolin Chen <[email protected]>
On Tue, Apr 09, 2019 at 11:27:42AM +0000, Viorel Suman wrote:
> Release the reference to the underlying device taken
> by of_find_device_by_node() call.
>
> Signed-off-by: Viorel Suman <[email protected]>
> Reported-by: Julia Lawall <[email protected]>
Acked-by: Nicolin Chen <[email protected]>
On Tue, Apr 09, 2019 at 11:27:39AM +0000, Viorel Suman wrote:
> Use "of_device_id.data" to specify the machine driver
> instead of "model" DTS attribute.
>
> Signed-off-by: Viorel Suman <[email protected]>
Acked-by: Nicolin Chen <[email protected]>
> ---
> sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++--------------------
> 1 file changed, 23 insertions(+), 20 deletions(-)
> + priv->pdev = platform_device_register_data(&pdev->dev, mdrv, 0, NULL,
> + 0);
Would you please send a separate patch to replace "pdev->dev"?
Hi Nicolin,
On Wed, Apr 10, 2019 at 7:30 AM Nicolin Chen <[email protected]> wrote:
>
> On Tue, Apr 09, 2019 at 11:27:39AM +0000, Viorel Suman wrote:
> > Use "of_device_id.data" to specify the machine driver
> > instead of "model" DTS attribute.
> >
> > Signed-off-by: Viorel Suman <[email protected]>
>
> Acked-by: Nicolin Chen <[email protected]>
>
> > ---
> > sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++--------------------
> > 1 file changed, 23 insertions(+), 20 deletions(-)
>
> > + priv->pdev = platform_device_register_data(&pdev->dev, mdrv, 0, NULL,
> > + 0);
>
> Would you please send a separate patch to replace "pdev->dev"?
I am not sure exactly how to explain this change in the commit message. It does
make code easier to read and avoids dereferencing pdev pointer each time.
Is it enough for commit description?
thanks,
Daniel.
On Wed, Apr 10, 2019 at 09:20:29AM +0300, Daniel Baluta wrote:
> Hi Nicolin,
>
> On Wed, Apr 10, 2019 at 7:30 AM Nicolin Chen <[email protected]> wrote:
> >
> > On Tue, Apr 09, 2019 at 11:27:39AM +0000, Viorel Suman wrote:
> > > Use "of_device_id.data" to specify the machine driver
> > > instead of "model" DTS attribute.
> > >
> > > Signed-off-by: Viorel Suman <[email protected]>
> >
> > Acked-by: Nicolin Chen <[email protected]>
> >
> > > ---
> > > sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++--------------------
> > > 1 file changed, 23 insertions(+), 20 deletions(-)
> >
> > > + priv->pdev = platform_device_register_data(&pdev->dev, mdrv, 0, NULL,
> > > + 0);
> >
> > Would you please send a separate patch to replace "pdev->dev"?
>
> I am not sure exactly how to explain this change in the commit message. It does
> make code easier to read and avoids dereferencing pdev pointer each time.
>
> Is it enough for commit description?
You mean this? https://lore.kernel.org/patchwork/patch/862610/
On Wed, Apr 10, 2019 at 9:37 AM Nicolin Chen <[email protected]> wrote:
>
> On Wed, Apr 10, 2019 at 09:20:29AM +0300, Daniel Baluta wrote:
> > Hi Nicolin,
> >
> > On Wed, Apr 10, 2019 at 7:30 AM Nicolin Chen <[email protected]> wrote:
> > >
> > > On Tue, Apr 09, 2019 at 11:27:39AM +0000, Viorel Suman wrote:
> > > > Use "of_device_id.data" to specify the machine driver
> > > > instead of "model" DTS attribute.
> > > >
> > > > Signed-off-by: Viorel Suman <[email protected]>
> > >
> > > Acked-by: Nicolin Chen <[email protected]>
> > >
> > > > ---
> > > > sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++--------------------
> > > > 1 file changed, 23 insertions(+), 20 deletions(-)
> > >
> > > > + priv->pdev = platform_device_register_data(&pdev->dev, mdrv, 0, NULL,
> > > > + 0);
> > >
> > > Would you please send a separate patch to replace "pdev->dev"?
> >
> > I am not sure exactly how to explain this change in the commit message. It does
> > make code easier to read and avoids dereferencing pdev pointer each time.
> >
> > Is it enough for commit description?
>
> You mean this? https://lore.kernel.org/patchwork/patch/862610/
Yes! Thanks.
Hi Nicolin,
On Ma, 2019-04-09 at 21:29 -0700, Nicolin Chen wrote:
> WARNING: This email was created outside of NXP. DO NOT CLICK links or
> attachments unless you recognize the sender and know the content is
> safe.
>
>
>
> On Tue, Apr 09, 2019 at 11:27:39AM +0000, Viorel Suman wrote:
> >
> > Use "of_device_id.data" to specify the machine driver
> > instead of "model" DTS attribute.
> >
> > Signed-off-by: Viorel Suman <[email protected]>
> Acked-by: Nicolin Chen <[email protected]>
>
> >
> > ---
> > sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++-----------
> > ---------
> > 1 file changed, 23 insertions(+), 20 deletions(-)
> >
> > + priv->pdev = platform_device_register_data(&pdev->dev, mdrv,
> > 0, NULL,
> > + 0);
> Would you please send a separate patch to replace "pdev->dev"?
Thank you for review. Yes, will send V3.
/Viorel
On Wed, Apr 10, 2019 at 10:34:57AM +0000, Viorel Suman wrote:
> Hi Nicolin,
>
> On Ma, 2019-04-09 at 21:29 -0700, Nicolin Chen wrote:
> > WARNING: This email was created outside of NXP. DO NOT CLICK links or
> > attachments unless you recognize the sender and know the content is
> > safe.
> >
> >
> >
> > On Tue, Apr 09, 2019 at 11:27:39AM +0000, Viorel Suman wrote:
> > >
> > > Use "of_device_id.data" to specify the machine driver
> > > instead of "model" DTS attribute.
> > >
> > > Signed-off-by: Viorel Suman <[email protected]>
> > Acked-by: Nicolin Chen <[email protected]>
> >
> > >
> > > ---
> > > ?sound/soc/fsl/fsl_audmix.c | 43 +++++++++++++++++++++++-----------
> > > ---------
> > > ?1 file changed, 23 insertions(+), 20 deletions(-)
> > >
> > > +?????priv->pdev = platform_device_register_data(&pdev->dev, mdrv,
> > > 0, NULL,
> > > +????????????????????????????????????????????????0);
> > Would you please send a separate patch to replace "pdev->dev"?
>
> Thank you for review. Yes, will send V3.
Ah...when I said that, I was literally saying that you should
send a separate patch individually, not resend the series.
Now I see you sent v3/v4 almost at the same time as "Applied"
mails from Mark. And I am totally confused which version got
applied....
Please rebase your local tree and find out which version got
applied and then send the diff with a separate patch.
Thanks
Nicolin