mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 23:51:37 +00:00
a0386bba70
The value returned by an spi driver's remove function is mostly ignored. (Only an error message is printed if the value is non-zero that the error is ignored.) So change the prototype of the remove function to return no value. This way driver authors are not tempted to assume that passing an error to the upper layer is a good idea. All drivers are adapted accordingly. There is no intended change of behaviour, all callbacks were prepared to return 0 before. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Marc Kleine-Budde <mkl@pengutronix.de> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Jérôme Pouiller <jerome.pouiller@silabs.com> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Acked-by: Claudius Heine <ch@denx.de> Acked-by: Stefan Schmidt <stefan@datenfreihafen.org> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Acked-by: Ulf Hansson <ulf.hansson@linaro.org> # For MMC Acked-by: Marcus Folkesson <marcus.folkesson@gmail.com> Acked-by: Łukasz Stelmach <l.stelmach@samsung.com> Acked-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20220123175201.34839-6-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
64 lines
1.5 KiB
C
64 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
//
|
|
// cs35l41.c -- CS35l41 HDA SPI driver
|
|
//
|
|
// Copyright 2021 Cirrus Logic, Inc.
|
|
//
|
|
// Author: Lucas Tanure <tanureal@opensource.cirrus.com>
|
|
|
|
#include <linux/acpi.h>
|
|
#include <linux/module.h>
|
|
#include <linux/spi/spi.h>
|
|
|
|
#include "cs35l41_hda.h"
|
|
|
|
static int cs35l41_hda_spi_probe(struct spi_device *spi)
|
|
{
|
|
const char *device_name;
|
|
|
|
/* Compare against the device name so it works for SPI, normal ACPI
|
|
* and for ACPI by spi-multi-instantiate matching cases
|
|
*/
|
|
if (strstr(dev_name(&spi->dev), "CSC3551"))
|
|
device_name = "CSC3551";
|
|
else
|
|
return -ENODEV;
|
|
|
|
return cs35l41_hda_probe(&spi->dev, device_name, spi->chip_select, spi->irq,
|
|
devm_regmap_init_spi(spi, &cs35l41_regmap_spi));
|
|
}
|
|
|
|
static void cs35l41_hda_spi_remove(struct spi_device *spi)
|
|
{
|
|
cs35l41_hda_remove(&spi->dev);
|
|
}
|
|
|
|
static const struct spi_device_id cs35l41_hda_spi_id[] = {
|
|
{ "cs35l41-hda", 0 },
|
|
{}
|
|
};
|
|
|
|
#ifdef CONFIG_ACPI
|
|
static const struct acpi_device_id cs35l41_acpi_hda_match[] = {
|
|
{ "CSC3551", 0 },
|
|
{},
|
|
};
|
|
MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match);
|
|
#endif
|
|
|
|
static struct spi_driver cs35l41_spi_driver = {
|
|
.driver = {
|
|
.name = "cs35l41_hda",
|
|
.acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match),
|
|
},
|
|
.id_table = cs35l41_hda_spi_id,
|
|
.probe = cs35l41_hda_spi_probe,
|
|
.remove = cs35l41_hda_spi_remove,
|
|
};
|
|
module_spi_driver(cs35l41_spi_driver);
|
|
|
|
MODULE_DESCRIPTION("HDA CS35L41 driver");
|
|
MODULE_IMPORT_NS(SND_HDA_SCODEC_CS35L41);
|
|
MODULE_AUTHOR("Lucas Tanure <tanureal@opensource.cirrus.com>");
|
|
MODULE_LICENSE("GPL");
|