Revision 57be09c6e8747bf48704136d9e3f92bfb93f5725 authored by Navid Emamdoost on 02 October 2019, 03:46:07 UTC, committed by Alex Deucher on 02 October 2019, 17:58:33 UTC
In acp_hw_init there are some allocations that needs to be released in
case of failure:

1- adev->acp.acp_genpd should be released if any allocation attemp for
adev->acp.acp_cell, adev->acp.acp_res or i2s_pdata fails.
2- all of those allocations should be released if
mfd_add_hotplug_devices or pm_genpd_add_device fail.
3- Release is needed in case of time out values expire.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 815fb4c
Raw File
spi-brcmstb-qspi.c
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright 2016 Broadcom
 */

#include <linux/device.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include "spi-bcm-qspi.h"

static const struct of_device_id brcmstb_qspi_of_match[] = {
	{ .compatible = "brcm,spi-brcmstb-qspi" },
	{ .compatible = "brcm,spi-brcmstb-mspi" },
	{},
};
MODULE_DEVICE_TABLE(of, brcmstb_qspi_of_match);

static int brcmstb_qspi_probe(struct platform_device *pdev)
{
	return bcm_qspi_probe(pdev, NULL);
}

static int brcmstb_qspi_remove(struct platform_device *pdev)
{
	return bcm_qspi_remove(pdev);
}

static struct platform_driver brcmstb_qspi_driver = {
	.probe			= brcmstb_qspi_probe,
	.remove			= brcmstb_qspi_remove,
	.driver = {
		.name		= "brcmstb_qspi",
		.pm		= &bcm_qspi_pm_ops,
		.of_match_table = brcmstb_qspi_of_match,
	}
};
module_platform_driver(brcmstb_qspi_driver);

MODULE_LICENSE("GPL v2");
MODULE_AUTHOR("Kamal Dasu");
MODULE_DESCRIPTION("Broadcom SPI driver for settop SoC");
back to top