mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
![Charles Keepax](/assets/img/avatar_default.png)
SoundWire has provisions for a simple callback for the IRQ handling so
has no hard dependency on IRQ_DOMAIN, but the recent addition of IRQ
handling was causing builds without IRQ_DOMAIN to fail. Resolve this by
moving the IRQ handling into its own file and only add it to the build
when IRQ_DOMAIN is included in the kernel.
Fixes: 12a95123bf
("soundwire: bus: Allow SoundWire peripherals to register IRQ handlers")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202309150522.MoKeF4jx-lkp@intel.com/
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230920160401.854052-1-ckeepax@opensource.cirrus.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
44 lines
922 B
C
44 lines
922 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2023 Cirrus Logic, Inc. and
|
|
* Cirrus Logic International Semiconductor Ltd.
|
|
*/
|
|
|
|
#ifndef __SDW_IRQ_H
|
|
#define __SDW_IRQ_H
|
|
|
|
#include <linux/soundwire/sdw.h>
|
|
#include <linux/fwnode.h>
|
|
|
|
#if IS_ENABLED(CONFIG_IRQ_DOMAIN)
|
|
|
|
int sdw_irq_create(struct sdw_bus *bus,
|
|
struct fwnode_handle *fwnode);
|
|
void sdw_irq_delete(struct sdw_bus *bus);
|
|
void sdw_irq_create_mapping(struct sdw_slave *slave);
|
|
void sdw_irq_dispose_mapping(struct sdw_slave *slave);
|
|
|
|
#else /* CONFIG_IRQ_DOMAIN */
|
|
|
|
static inline int sdw_irq_create(struct sdw_bus *bus,
|
|
struct fwnode_handle *fwnode)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void sdw_irq_delete(struct sdw_bus *bus)
|
|
{
|
|
}
|
|
|
|
static inline void sdw_irq_create_mapping(struct sdw_slave *slave)
|
|
{
|
|
}
|
|
|
|
static inline void sdw_irq_dispose_mapping(struct sdw_slave *slave)
|
|
{
|
|
}
|
|
|
|
#endif /* CONFIG_IRQ_DOMAIN */
|
|
|
|
#endif /* __SDW_IRQ_H */
|