mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
coresight: Refactor driver data allocation
The driver data no longer needs to be allocated separately in the static and dynamic probes. Moved the allocation into the low-level functions to avoid code duplication. Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com> Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com> Tested-by: James Clark <james.clark@linaro.org> Signed-off-by: Leo Yan <leo.yan@arm.com> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20250731-arm_cs_fix_clock_v4-v6-8-1dfe10bb3f6f@arm.com
This commit is contained in:
parent
fbe7514a79
commit
ba6b61fa21
|
|
@ -515,11 +515,17 @@ static int __catu_probe(struct device *dev, struct resource *res)
|
|||
{
|
||||
int ret = 0;
|
||||
u32 dma_mask;
|
||||
struct catu_drvdata *drvdata = dev_get_drvdata(dev);
|
||||
struct catu_drvdata *drvdata;
|
||||
struct coresight_desc catu_desc;
|
||||
struct coresight_platform_data *pdata = NULL;
|
||||
void __iomem *base;
|
||||
|
||||
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_set_drvdata(dev, drvdata);
|
||||
|
||||
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
@ -580,14 +586,8 @@ static int __catu_probe(struct device *dev, struct resource *res)
|
|||
|
||||
static int catu_probe(struct amba_device *adev, const struct amba_id *id)
|
||||
{
|
||||
struct catu_drvdata *drvdata;
|
||||
int ret;
|
||||
|
||||
drvdata = devm_kzalloc(&adev->dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
amba_set_drvdata(adev, drvdata);
|
||||
ret = __catu_probe(&adev->dev, &adev->res);
|
||||
if (!ret)
|
||||
pm_runtime_put(&adev->dev);
|
||||
|
|
@ -627,18 +627,12 @@ static struct amba_driver catu_driver = {
|
|||
static int catu_platform_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
struct catu_drvdata *drvdata;
|
||||
int ret = 0;
|
||||
|
||||
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
pm_runtime_get_noresume(&pdev->dev);
|
||||
pm_runtime_set_active(&pdev->dev);
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
||||
dev_set_drvdata(&pdev->dev, drvdata);
|
||||
ret = __catu_probe(&pdev->dev, res);
|
||||
pm_runtime_put(&pdev->dev);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -562,10 +562,16 @@ static void debug_func_exit(void)
|
|||
|
||||
static int __debug_probe(struct device *dev, struct resource *res)
|
||||
{
|
||||
struct debug_drvdata *drvdata = dev_get_drvdata(dev);
|
||||
struct debug_drvdata *drvdata;
|
||||
void __iomem *base;
|
||||
int ret;
|
||||
|
||||
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_set_drvdata(dev, drvdata);
|
||||
|
||||
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, NULL);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
@ -629,13 +635,6 @@ static int __debug_probe(struct device *dev, struct resource *res)
|
|||
|
||||
static int debug_probe(struct amba_device *adev, const struct amba_id *id)
|
||||
{
|
||||
struct debug_drvdata *drvdata;
|
||||
|
||||
drvdata = devm_kzalloc(&adev->dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
amba_set_drvdata(adev, drvdata);
|
||||
return __debug_probe(&adev->dev, &adev->res);
|
||||
}
|
||||
|
||||
|
|
@ -694,14 +693,8 @@ static struct amba_driver debug_driver = {
|
|||
static int debug_platform_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
struct debug_drvdata *drvdata;
|
||||
int ret = 0;
|
||||
|
||||
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_set_drvdata(&pdev->dev, drvdata);
|
||||
pm_runtime_get_noresume(&pdev->dev);
|
||||
pm_runtime_set_active(&pdev->dev);
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
|
|
|||
|
|
@ -775,10 +775,16 @@ static int __tmc_probe(struct device *dev, struct resource *res)
|
|||
u32 devid;
|
||||
void __iomem *base;
|
||||
struct coresight_platform_data *pdata = NULL;
|
||||
struct tmc_drvdata *drvdata = dev_get_drvdata(dev);
|
||||
struct tmc_drvdata *drvdata;
|
||||
struct coresight_desc desc = { 0 };
|
||||
struct coresight_dev_list *dev_list = NULL;
|
||||
|
||||
drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_set_drvdata(dev, drvdata);
|
||||
|
||||
ret = coresight_get_enable_clocks(dev, &drvdata->pclk, &drvdata->atclk);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
@ -888,14 +894,8 @@ static int __tmc_probe(struct device *dev, struct resource *res)
|
|||
|
||||
static int tmc_probe(struct amba_device *adev, const struct amba_id *id)
|
||||
{
|
||||
struct tmc_drvdata *drvdata;
|
||||
int ret;
|
||||
|
||||
drvdata = devm_kzalloc(&adev->dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
amba_set_drvdata(adev, drvdata);
|
||||
ret = __tmc_probe(&adev->dev, &adev->res);
|
||||
if (!ret)
|
||||
pm_runtime_put(&adev->dev);
|
||||
|
|
@ -972,14 +972,8 @@ static struct amba_driver tmc_driver = {
|
|||
static int tmc_platform_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
struct tmc_drvdata *drvdata;
|
||||
int ret = 0;
|
||||
|
||||
drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
|
||||
if (!drvdata)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_set_drvdata(&pdev->dev, drvdata);
|
||||
pm_runtime_get_noresume(&pdev->dev);
|
||||
pm_runtime_set_active(&pdev->dev);
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user