@@ -127,6 +127,16 @@ void platform_poweroff(void)
platform->poweroff();
}
+bool_t platform_has_quirk(uint32_t quirk)
+{
+ uint32_t quirks = 0;
+
+ if ( platform && platform->quirks )
+ quirks = platform->quirks();
+
+ return !!(quirks & quirk);
+}
+
bool_t platform_device_is_blacklisted(const struct dt_device_node *node)
{
const struct dt_device_match *blacklist = NULL;
@@ -27,6 +27,12 @@ struct platform_desc {
/* Platform power-off */
void (*poweroff)(void);
/*
+ * Platform quirks
+ * Defined has a function because a platform can support multiple
+ * board with different quirk on each
+ */
+ uint32_t (*quirks)(void);
+ /*
* Platform blacklist devices
* List of devices which must not pass-through to a guest
*/
@@ -42,6 +48,7 @@ int platform_cpu_up(int cpu);
#endif
void platform_reset(void);
void platform_poweroff(void);
+bool_t platform_has_quirk(uint32_t quirk);
bool_t platform_device_is_blacklisted(const struct dt_device_node *node);
#define PLATFORM_START(_name, _namestr) \
This reverts commit 14fa16961b03a23e9b883e5f0ed06b6837a489d8. Do not reintroduce platform_dom0_evtchn_ppi. Signed-off-by: Stefano Stabellini <sstabellini@kernel.org> --- xen/arch/arm/platform.c | 10 ++++++++++ xen/include/asm-arm/platform.h | 7 +++++++ 2 files changed, 17 insertions(+)