On Wed, May 01, 2019 at 03:21:00PM +0000, Frank Li wrote: > +static int ddr_perf_probe(struct platform_device *pdev) > +{ > + struct ddr_pmu *pmu; > + struct device_node *np; > + void __iomem *base; > + char *name; > + int num; > + int ret; > + int irq; > + > + base = devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(base)) > + return PTR_ERR(base); > + > + np = pdev->dev.of_node; > + > + pmu = devm_kzalloc(&pdev->dev, sizeof(*pmu), GFP_KERNEL); > + if (!pmu) > + return -ENOMEM; > + > + num = ddr_perf_init(pmu, base, &pdev->dev); > + > + platform_set_drvdata(pdev, pmu); > + > + name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "imx_ddr%d", num); Still not happy with this. Will