Commit 2130a790 authored by Juergen Gross's avatar Juergen Gross
Browse files

kernel: add platform_has() infrastructure



Add a simple infrastructure for setting, resetting and querying
platform feature flags.

Flags can be either global or architecture specific.

Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Reviewed-by: default avatarOleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Tested-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com> # Arm64 only
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarBorislav Petkov <bp@suse.de>
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
parent f2906aa8
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -15824,6 +15824,14 @@ S: Maintained
F:	Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
F:	drivers/iio/chemical/pms7003.c
PLATFORM FEATURE INFRASTRUCTURE
M:	Juergen Gross <jgross@suse.com>
S:	Maintained
F:	arch/*/include/asm/platform-feature.h
F:	include/asm-generic/platform-feature.h
F:	include/linux/platform-feature.h
F:	kernel/platform-feature.c
PLDMFW LIBRARY
M:	Jacob Keller <jacob.e.keller@intel.com>
S:	Maintained
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ mandatory-y += msi.h
mandatory-y += pci.h
mandatory-y += percpu.h
mandatory-y += pgalloc.h
mandatory-y += platform-feature.h
mandatory-y += preempt.h
mandatory-y += rwonce.h
mandatory-y += sections.h
+8 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_GENERIC_PLATFORM_FEATURE_H
#define _ASM_GENERIC_PLATFORM_FEATURE_H

/* Number of arch specific feature flags. */
#define PLATFORM_ARCH_FEAT_N	0

#endif /* _ASM_GENERIC_PLATFORM_FEATURE_H */
+15 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _PLATFORM_FEATURE_H
#define _PLATFORM_FEATURE_H

#include <linux/bitops.h>
#include <asm/platform-feature.h>

/* The platform features are starting with the architecture specific ones. */
#define PLATFORM_FEAT_N				(0 + PLATFORM_ARCH_FEAT_N)

void platform_set(unsigned int feature);
void platform_clear(unsigned int feature);
bool platform_has(unsigned int feature);

#endif /* _PLATFORM_FEATURE_H */
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ obj-y = fork.o exec_domain.o panic.o \
	    cpu.o exit.o softirq.o resource.o \
	    sysctl.o capability.o ptrace.o user.o \
	    signal.o sys.o umh.o workqueue.o pid.o task_work.o \
	    extable.o params.o \
	    extable.o params.o platform-feature.o \
	    kthread.o sys_ni.o nsproxy.o \
	    notifier.o ksysfs.o cred.o reboot.o \
	    async.o range.o smpboot.o ucount.o regset.o
Loading