x86/platform changes for v4.6
Linus,
Please pull the latest x86-platform-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-platform-for-linus
# HEAD: c637fa5294cefeda8be73cce20ba6693d22262dc x86/platform/intel/quark: Drop IMR lock bit support
Intel Quark and Geode SoC platform updates.
Thanks,
Ingo
------------------>
Alan (1):
x86/platform/intel/mid: Remove dead code
Bryan O'Donoghue (1):
x86/platform/intel/quark: Drop IMR lock bit support
Paul Gortmaker (5):
x86/platform: Make platform/intel-quark/imr.c explicitly non-modular x86/platform: Make platform/intel-quark/imr_selftest.c explicitly non-modular x86/platform: Make platform/geode/geos.c explicitly non-modular x86/platform: Make platform/geode/alix.c explicitly non-modular x86/platform: Make platform/geode/net5501.c explicitly non-modular
arch/x86/include/asm/imr.h | 2 +- arch/x86/platform/geode/alix.c | 14 +++---- arch/x86/platform/geode/geos.c | 8 +--- arch/x86/platform/geode/net5501.c | 8 +--- arch/x86/platform/intel-mid/mfld.c | 5 +-- arch/x86/platform/intel-mid/mrfl.c | 5 +-- arch/x86/platform/intel-quark/imr.c | 59 ++++------------------------ arch/x86/platform/intel-quark/imr_selftest.c | 30 +++++--------- 8 files changed, 29 insertions(+), 102 deletions(-)
arch/x86/include/asm/imr.h +1 -1
@@ -53,7 +53,7 @@#define IMR_MASK (IMR_ALIGN - 1)int imr_add_range (phys_addr_t base,size_t size, -unsigned int rmask,unsigned int wmask,bool lock); +unsigned int rmask,unsigned int wmask);int imr_remove_range (phys_addr_t base,size_t size);
arch/x86/platform/geode/alix.c +7 -7
@@ -21,7 +21,7 @@#include <linux/init.h> #include <linux/io.h> #include <linux/string.h> -#include <linux/module.h> +#include <linux/moduleparam.h> #include <linux/leds.h> #include <linux/platform_device.h> #include <linux/gpio.h>
@@ -35,6 +35,11 @@#define BIOS_SIGNATURE_COREBOOT 0x500#define BIOS_REGION_SIZE 0x10000 +/* +* This driver is not modular, but to keep back compatibility +* with existing use cases, continuing with module_param is +* the easiest way forward. +*/ static bool force =0 ;module_param (force, bool,0444 );/* FIXME: Award bios is not automatically detected as Alix platform */
@@ -192,9 +197,4 @@ static int __init alix_init(void)return 0 ; } - -module_init (alix_init); - -MODULE_AUTHOR ("Ed Wildgoose <[email protected]>" ); -MODULE_DESCRIPTION ("PCEngines ALIX System Setup" ); -MODULE_LICENSE ("GPL" ); +device_initcall (alix_init);
arch/x86/platform/geode/geos.c +1 -7
@@ -19,7 +19,6 @@#include <linux/init.h> #include <linux/io.h> #include <linux/string.h> -#include <linux/module.h> #include <linux/leds.h> #include <linux/platform_device.h> #include <linux/gpio.h>
@@ -120,9 +119,4 @@ static int __init geos_init(void)return 0 ; } - -module_init (geos_init); - -MODULE_AUTHOR ("Philip Prindeville <[email protected]>" ); -MODULE_DESCRIPTION ("Traverse Technologies Geos System Setup" ); -MODULE_LICENSE ("GPL" ); +device_initcall (geos_init);
arch/x86/platform/geode/net5501.c +1 -7
@@ -20,7 +20,6 @@#include <linux/init.h> #include <linux/io.h> #include <linux/string.h> -#include <linux/module.h> #include <linux/leds.h> #include <linux/platform_device.h> #include <linux/gpio.h>
@@ -146,9 +145,4 @@ static int __init net5501_init(void)return 0 ; } - -module_init (net5501_init); - -MODULE_AUTHOR ("Philip Prindeville <[email protected]>" ); -MODULE_DESCRIPTION ("Soekris net5501 System Setup" ); -MODULE_LICENSE ("GPL" ); +device_initcall (net5501_init);
arch/x86/platform/intel-mid/mfld.c +1 -4
@@ -52,10 +52,7 @@ static unsigned long __init mfld_calibrate_tsc(void)/* mark tsc clocksource as reliable */ set_cpu_cap (&boot_cpu_data,X86_FEATURE_TSC_RELIABLE ); -if (fast_calibrate) -return fast_calibrate; - -return 0 ; +return fast_calibrate; }static void __init penwell_arch_setup (void )
arch/x86/platform/intel-mid/mrfl.c +1 -4
@@ -81,10 +81,7 @@ static unsigned long __init tangier_calibrate_tsc(void)/* mark tsc clocksource as reliable */ set_cpu_cap (&boot_cpu_data,X86_FEATURE_TSC_RELIABLE ); -if (fast_calibrate) -return fast_calibrate; - -return 0 ; +return fast_calibrate; }static void __init tangier_arch_setup (void )
arch/x86/platform/intel-quark/imr.c +8 -51
131 lines not on this page · raw message
arch/x86/platform/intel-quark/imr_selftest.c +9 -21
@@ -1,5 +1,5 @@/** -* imr_selftest.c +* imr_selftest.c -- Intel Isolated Memory Region self-test driver * * Copyright(c) 2013 Intel Corporation. * Copyright(c) 2015 Bryan O'Donoghue <[email protected]>
@@ -15,7 +15,6 @@#include <asm/imr.h> #include <linux/init.h> #include <linux/mm.h> -#include <linux/module.h> #include <linux/types.h> #define SELFTEST KBUILD_MODNAME ": "
@@ -61,30 +60,30 @@ static void __init imr_self_test(void)int ret;/* Test zero zero. */ - ret =imr_add_range (0 ,0 ,0 ,0 , false); + ret =imr_add_range (0 ,0 ,0 ,0 );imr_self_test_result (ret <0 ,"zero sized IMR\n" );/* Test exact overlap. */ - ret =imr_add_range (base, size,IMR_CPU ,IMR_CPU , false); + ret =imr_add_range (base, size,IMR_CPU ,IMR_CPU );imr_self_test_result (ret <0 , fmt_over,__va (base),__va (base + size));/* Test overlap with base inside of existing. */ base += size -IMR_ALIGN ; - ret =imr_add_range (base, size,IMR_CPU ,IMR_CPU , false); + ret =imr_add_range (base, size,IMR_CPU ,IMR_CPU );imr_self_test_result (ret <0 , fmt_over,__va (base),__va (base + size));/* Test overlap with end inside of existing. */ base -= size +IMR_ALIGN *2 ; - ret =imr_add_range (base, size,IMR_CPU ,IMR_CPU , false); + ret =imr_add_range (base, size,IMR_CPU ,IMR_CPU );imr_self_test_result (ret <0 , fmt_over,__va (base),__va (base + size));/* Test that a 1 KiB IMR @ zero with read/write all will bomb out. */ ret =imr_add_range (0 ,IMR_ALIGN ,IMR_READ_ACCESS_ALL , -IMR_WRITE_ACCESS_ALL , false); +IMR_WRITE_ACCESS_ALL );imr_self_test_result (ret <0 ,"1KiB IMR @ 0x00000000 - access-all\n" );/* Test that a 1 KiB IMR @ zero with CPU only will work. */ - ret =imr_add_range (0 ,IMR_ALIGN ,IMR_CPU ,IMR_CPU , false); + ret =imr_add_range (0 ,IMR_ALIGN ,IMR_CPU ,IMR_CPU );imr_self_test_result (ret >=0 ,"1KiB IMR @ 0x00000000 - cpu-access\n" );if (ret >=0 ) { ret =imr_remove_range (0 ,IMR_ALIGN );
@@ -93,8 +92,7 @@ static void __init imr_self_test(void)/* Test 2 KiB works. */ size =IMR_ALIGN *2 ; - ret =imr_add_range (0 , size,IMR_READ_ACCESS_ALL , -IMR_WRITE_ACCESS_ALL , false); + ret =imr_add_range (0 , size,IMR_READ_ACCESS_ALL ,IMR_WRITE_ACCESS_ALL );imr_self_test_result (ret >=0 ,"2KiB IMR @ 0x00000000\n" );if (ret >=0 ) { ret =imr_remove_range (0 , size);
@@ -106,7 +104,6 @@ static const struct x86_cpu_id imr_ids[] __initconst = { { X86_VENDOR_INTEL, 5, 9 }, /* Intel Quark SoC X1000. */ {} }; -MODULE_DEVICE_TABLE (x86cpu, imr_ids);/** * imr_self_test_init - entry point for IMR driver.
@@ -125,13 +122,4 @@ static int __init imr_self_test_init(void)* * return: */ -static void __exit imr_self_test_exit(void) -{ -} - -module_init (imr_self_test_init); -module_exit (imr_self_test_exit); - -MODULE_AUTHOR ("Bryan O'Donoghue <[email protected]>" ); -MODULE_DESCRIPTION ("Intel Isolated Memory Region self-test driver" ); -MODULE_LICENSE ("Dual BSD/GPL" ); +device_initcall (imr_self_test_init);