diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-06 19:39:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-06 19:39:31 -0400 |
commit | ccbc2e5ed192ccd2663477107379f843d072e649 (patch) | |
tree | 13a180031283a7cc2275902cf45e1bc1d9cd5ee6 /arch/m68k | |
parent | fdafe5d1ffe8021704cb389e9823aef4235c88bc (diff) | |
parent | fdd20ec8786ab2950439c7e78871618f7e51f18b (diff) |
Merge tag 'm68k-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
Pull m68k updates from Geert Uytterhoeven:
- drop arch_gettimeoffset and adopt clocksource API
- defconfig updates
* tag 'm68k-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
Documentation/features/time: Mark m68k having modern-timekeeping
m68k: defconfig: Update defconfigs for v5.1-rc1
m68k: mvme16x: Handle timer counter overflow
m68k: mvme16x: Convert to clocksource API
m68k: mvme147: Handle timer counter overflow
m68k: mvme147: Convert to clocksource API
m68k: mac: Convert to clocksource API
m68k: hp300: Handle timer counter overflow
m68k: hp300: Convert to clocksource API
m68k: bvme6000: Convert to clocksource API
m68k: atari: Convert to clocksource API
m68k: amiga: Convert to clocksource API
m68k: Drop ARCH_USES_GETTIMEOFFSET
m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementations
m68k: mac: Fix VIA timer counter accesses
m68k: Call timer_interrupt() with interrupts disabled
Diffstat (limited to 'arch/m68k')
36 files changed, 517 insertions, 329 deletions
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 735b9679fe6f..fe5cc2da6d10 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig | |||
@@ -20,7 +20,6 @@ config M68K | |||
20 | select GENERIC_STRNCPY_FROM_USER if MMU | 20 | select GENERIC_STRNCPY_FROM_USER if MMU |
21 | select GENERIC_STRNLEN_USER if MMU | 21 | select GENERIC_STRNLEN_USER if MMU |
22 | select ARCH_WANT_IPC_PARSE_VERSION | 22 | select ARCH_WANT_IPC_PARSE_VERSION |
23 | select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE | ||
24 | select HAVE_FUTEX_CMPXCHG if MMU && FUTEX | 23 | select HAVE_FUTEX_CMPXCHG if MMU && FUTEX |
25 | select HAVE_MOD_ARCH_SPECIFIC | 24 | select HAVE_MOD_ARCH_SPECIFIC |
26 | select MODULES_USE_ELF_REL | 25 | select MODULES_USE_ELF_REL |
diff --git a/arch/m68k/amiga/cia.c b/arch/m68k/amiga/cia.c index 2081b8cd5591..b9aee983e6f4 100644 --- a/arch/m68k/amiga/cia.c +++ b/arch/m68k/amiga/cia.c | |||
@@ -88,10 +88,19 @@ static irqreturn_t cia_handler(int irq, void *dev_id) | |||
88 | struct ciabase *base = dev_id; | 88 | struct ciabase *base = dev_id; |
89 | int mach_irq; | 89 | int mach_irq; |
90 | unsigned char ints; | 90 | unsigned char ints; |
91 | unsigned long flags; | ||
91 | 92 | ||
93 | /* Interrupts get disabled while the timer irq flag is cleared and | ||
94 | * the timer interrupt serviced. | ||
95 | */ | ||
92 | mach_irq = base->cia_irq; | 96 | mach_irq = base->cia_irq; |
97 | local_irq_save(flags); | ||
93 | ints = cia_set_irq(base, CIA_ICR_ALL); | 98 | ints = cia_set_irq(base, CIA_ICR_ALL); |
94 | amiga_custom.intreq = base->int_mask; | 99 | amiga_custom.intreq = base->int_mask; |
100 | if (ints & 1) | ||
101 | generic_handle_irq(mach_irq); | ||
102 | local_irq_restore(flags); | ||
103 | mach_irq++, ints >>= 1; | ||
95 | for (; ints; mach_irq++, ints >>= 1) { | 104 | for (; ints; mach_irq++, ints >>= 1) { |
96 | if (ints & 1) | 105 | if (ints & 1) |
97 | generic_handle_irq(mach_irq); | 106 | generic_handle_irq(mach_irq); |
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c index 65f63a457130..c32ab8041cf6 100644 --- a/arch/m68k/amiga/config.c +++ b/arch/m68k/amiga/config.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
18 | #include <linux/seq_file.h> | 18 | #include <linux/seq_file.h> |
19 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
20 | #include <linux/clocksource.h> | ||
20 | #include <linux/console.h> | 21 | #include <linux/console.h> |
21 | #include <linux/rtc.h> | 22 | #include <linux/rtc.h> |
22 | #include <linux/init.h> | 23 | #include <linux/init.h> |
@@ -95,8 +96,6 @@ static char amiga_model_name[13] = "Amiga "; | |||
95 | static void amiga_sched_init(irq_handler_t handler); | 96 | static void amiga_sched_init(irq_handler_t handler); |
96 | static void amiga_get_model(char *model); | 97 | static void amiga_get_model(char *model); |
97 | static void amiga_get_hardware_list(struct seq_file *m); | 98 | static void amiga_get_hardware_list(struct seq_file *m); |
98 | /* amiga specific timer functions */ | ||
99 | static u32 amiga_gettimeoffset(void); | ||
100 | extern void amiga_mksound(unsigned int count, unsigned int ticks); | 99 | extern void amiga_mksound(unsigned int count, unsigned int ticks); |
101 | static void amiga_reset(void); | 100 | static void amiga_reset(void); |
102 | extern void amiga_init_sound(void); | 101 | extern void amiga_init_sound(void); |
@@ -386,7 +385,6 @@ void __init config_amiga(void) | |||
386 | mach_init_IRQ = amiga_init_IRQ; | 385 | mach_init_IRQ = amiga_init_IRQ; |
387 | mach_get_model = amiga_get_model; | 386 | mach_get_model = amiga_get_model; |
388 | mach_get_hardware_list = amiga_get_hardware_list; | 387 | mach_get_hardware_list = amiga_get_hardware_list; |
389 | arch_gettimeoffset = amiga_gettimeoffset; | ||
390 | 388 | ||
391 | /* | 389 | /* |
392 | * default MAX_DMA=0xffffffff on all machines. If we don't do so, the SCSI | 390 | * default MAX_DMA=0xffffffff on all machines. If we don't do so, the SCSI |
@@ -464,7 +462,29 @@ void __init config_amiga(void) | |||
464 | *(unsigned char *)ZTWO_VADDR(0xde0002) |= 0x80; | 462 | *(unsigned char *)ZTWO_VADDR(0xde0002) |= 0x80; |
465 | } | 463 | } |
466 | 464 | ||
465 | static u64 amiga_read_clk(struct clocksource *cs); | ||
466 | |||
467 | static struct clocksource amiga_clk = { | ||
468 | .name = "ciab", | ||
469 | .rating = 250, | ||
470 | .read = amiga_read_clk, | ||
471 | .mask = CLOCKSOURCE_MASK(32), | ||
472 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
473 | }; | ||
474 | |||
467 | static unsigned short jiffy_ticks; | 475 | static unsigned short jiffy_ticks; |
476 | static u32 clk_total, clk_offset; | ||
477 | |||
478 | static irqreturn_t ciab_timer_handler(int irq, void *dev_id) | ||
479 | { | ||
480 | irq_handler_t timer_routine = dev_id; | ||
481 | |||
482 | clk_total += jiffy_ticks; | ||
483 | clk_offset = 0; | ||
484 | timer_routine(0, NULL); | ||
485 | |||
486 | return IRQ_HANDLED; | ||
487 | } | ||
468 | 488 | ||
469 | static void __init amiga_sched_init(irq_handler_t timer_routine) | 489 | static void __init amiga_sched_init(irq_handler_t timer_routine) |
470 | { | 490 | { |
@@ -484,19 +504,22 @@ static void __init amiga_sched_init(irq_handler_t timer_routine) | |||
484 | * Please don't change this to use ciaa, as it interferes with the | 504 | * Please don't change this to use ciaa, as it interferes with the |
485 | * SCSI code. We'll have to take a look at this later | 505 | * SCSI code. We'll have to take a look at this later |
486 | */ | 506 | */ |
487 | if (request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, 0, "timer", NULL)) | 507 | if (request_irq(IRQ_AMIGA_CIAB_TA, ciab_timer_handler, IRQF_TIMER, |
508 | "timer", timer_routine)) | ||
488 | pr_err("Couldn't register timer interrupt\n"); | 509 | pr_err("Couldn't register timer interrupt\n"); |
489 | /* start timer */ | 510 | /* start timer */ |
490 | ciab.cra |= 0x11; | 511 | ciab.cra |= 0x11; |
491 | } | ||
492 | 512 | ||
493 | #define TICK_SIZE 10000 | 513 | clocksource_register_hz(&amiga_clk, amiga_eclock); |
514 | } | ||
494 | 515 | ||
495 | /* This is always executed with interrupts disabled. */ | 516 | static u64 amiga_read_clk(struct clocksource *cs) |
496 | static u32 amiga_gettimeoffset(void) | ||
497 | { | 517 | { |
498 | unsigned short hi, lo, hi2; | 518 | unsigned short hi, lo, hi2; |
499 | u32 ticks, offset = 0; | 519 | unsigned long flags; |
520 | u32 ticks; | ||
521 | |||
522 | local_irq_save(flags); | ||
500 | 523 | ||
501 | /* read CIA B timer A current value */ | 524 | /* read CIA B timer A current value */ |
502 | hi = ciab.tahi; | 525 | hi = ciab.tahi; |
@@ -513,12 +536,14 @@ static u32 amiga_gettimeoffset(void) | |||
513 | if (ticks > jiffy_ticks / 2) | 536 | if (ticks > jiffy_ticks / 2) |
514 | /* check for pending interrupt */ | 537 | /* check for pending interrupt */ |
515 | if (cia_set_irq(&ciab_base, 0) & CIA_ICR_TA) | 538 | if (cia_set_irq(&ciab_base, 0) & CIA_ICR_TA) |
516 | offset = 10000; | 539 | clk_offset = jiffy_ticks; |
517 | 540 | ||
518 | ticks = jiffy_ticks - ticks; | 541 | ticks = jiffy_ticks - ticks; |
519 | ticks = (10000 * ticks) / jiffy_ticks; | 542 | ticks += clk_offset + clk_total; |
543 | |||
544 | local_irq_restore(flags); | ||
520 | 545 | ||
521 | return (ticks + offset) * 1000; | 546 | return ticks; |
522 | } | 547 | } |
523 | 548 | ||
524 | static void amiga_reset(void) __noreturn; | 549 | static void amiga_reset(void) __noreturn; |
diff --git a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c index aef8d42e078d..7d168e6dfb01 100644 --- a/arch/m68k/apollo/config.c +++ b/arch/m68k/apollo/config.c | |||
@@ -29,7 +29,6 @@ u_long apollo_model; | |||
29 | 29 | ||
30 | extern void dn_sched_init(irq_handler_t handler); | 30 | extern void dn_sched_init(irq_handler_t handler); |
31 | extern void dn_init_IRQ(void); | 31 | extern void dn_init_IRQ(void); |
32 | extern u32 dn_gettimeoffset(void); | ||
33 | extern int dn_dummy_hwclk(int, struct rtc_time *); | 32 | extern int dn_dummy_hwclk(int, struct rtc_time *); |
34 | extern void dn_dummy_reset(void); | 33 | extern void dn_dummy_reset(void); |
35 | #ifdef CONFIG_HEARTBEAT | 34 | #ifdef CONFIG_HEARTBEAT |
@@ -152,7 +151,6 @@ void __init config_apollo(void) | |||
152 | 151 | ||
153 | mach_sched_init=dn_sched_init; /* */ | 152 | mach_sched_init=dn_sched_init; /* */ |
154 | mach_init_IRQ=dn_init_IRQ; | 153 | mach_init_IRQ=dn_init_IRQ; |
155 | arch_gettimeoffset = dn_gettimeoffset; | ||
156 | mach_max_dma_address = 0xffffffff; | 154 | mach_max_dma_address = 0xffffffff; |
157 | mach_hwclk = dn_dummy_hwclk; /* */ | 155 | mach_hwclk = dn_dummy_hwclk; /* */ |
158 | mach_reset = dn_dummy_reset; /* */ | 156 | mach_reset = dn_dummy_reset; /* */ |
@@ -205,11 +203,6 @@ void dn_sched_init(irq_handler_t timer_routine) | |||
205 | pr_err("Couldn't register timer interrupt\n"); | 203 | pr_err("Couldn't register timer interrupt\n"); |
206 | } | 204 | } |
207 | 205 | ||
208 | u32 dn_gettimeoffset(void) | ||
209 | { | ||
210 | return 0xdeadbeef; | ||
211 | } | ||
212 | |||
213 | int dn_dummy_hwclk(int op, struct rtc_time *t) { | 206 | int dn_dummy_hwclk(int op, struct rtc_time *t) { |
214 | 207 | ||
215 | 208 | ||
diff --git a/arch/m68k/atari/ataints.c b/arch/m68k/atari/ataints.c index 3d2b63bedf05..56f02ea2c248 100644 --- a/arch/m68k/atari/ataints.c +++ b/arch/m68k/atari/ataints.c | |||
@@ -142,7 +142,7 @@ struct mfptimerbase { | |||
142 | .name = "MFP Timer D" | 142 | .name = "MFP Timer D" |
143 | }; | 143 | }; |
144 | 144 | ||
145 | static irqreturn_t mfptimer_handler(int irq, void *dev_id) | 145 | static irqreturn_t mfp_timer_d_handler(int irq, void *dev_id) |
146 | { | 146 | { |
147 | struct mfptimerbase *base = dev_id; | 147 | struct mfptimerbase *base = dev_id; |
148 | int mach_irq; | 148 | int mach_irq; |
@@ -344,7 +344,7 @@ void __init atari_init_IRQ(void) | |||
344 | st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 0xf0) | 0x6; | 344 | st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 0xf0) | 0x6; |
345 | 345 | ||
346 | /* request timer D dispatch handler */ | 346 | /* request timer D dispatch handler */ |
347 | if (request_irq(IRQ_MFP_TIMD, mfptimer_handler, IRQF_SHARED, | 347 | if (request_irq(IRQ_MFP_TIMD, mfp_timer_d_handler, IRQF_SHARED, |
348 | stmfp_base.name, &stmfp_base)) | 348 | stmfp_base.name, &stmfp_base)) |
349 | pr_err("Couldn't register %s interrupt\n", stmfp_base.name); | 349 | pr_err("Couldn't register %s interrupt\n", stmfp_base.name); |
350 | 350 | ||
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c index 4fcc4b1df1c0..902255e7b5b2 100644 --- a/arch/m68k/atari/config.c +++ b/arch/m68k/atari/config.c | |||
@@ -78,7 +78,6 @@ static void atari_heartbeat(int on); | |||
78 | 78 | ||
79 | /* atari specific timer functions (in time.c) */ | 79 | /* atari specific timer functions (in time.c) */ |
80 | extern void atari_sched_init(irq_handler_t); | 80 | extern void atari_sched_init(irq_handler_t); |
81 | extern u32 atari_gettimeoffset(void); | ||
82 | extern int atari_mste_hwclk (int, struct rtc_time *); | 81 | extern int atari_mste_hwclk (int, struct rtc_time *); |
83 | extern int atari_tt_hwclk (int, struct rtc_time *); | 82 | extern int atari_tt_hwclk (int, struct rtc_time *); |
84 | 83 | ||
@@ -205,7 +204,6 @@ void __init config_atari(void) | |||
205 | mach_init_IRQ = atari_init_IRQ; | 204 | mach_init_IRQ = atari_init_IRQ; |
206 | mach_get_model = atari_get_model; | 205 | mach_get_model = atari_get_model; |
207 | mach_get_hardware_list = atari_get_hardware_list; | 206 | mach_get_hardware_list = atari_get_hardware_list; |
208 | arch_gettimeoffset = atari_gettimeoffset; | ||
209 | mach_reset = atari_reset; | 207 | mach_reset = atari_reset; |
210 | mach_max_dma_address = 0xffffff; | 208 | mach_max_dma_address = 0xffffff; |
211 | #if IS_ENABLED(CONFIG_INPUT_M68K_BEEP) | 209 | #if IS_ENABLED(CONFIG_INPUT_M68K_BEEP) |
diff --git a/arch/m68k/atari/time.c b/arch/m68k/atari/time.c index 9cca64286464..ce923a523695 100644 --- a/arch/m68k/atari/time.c +++ b/arch/m68k/atari/time.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/rtc.h> | 17 | #include <linux/rtc.h> |
18 | #include <linux/bcd.h> | 18 | #include <linux/bcd.h> |
19 | #include <linux/clocksource.h> | ||
19 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
20 | #include <linux/export.h> | 21 | #include <linux/export.h> |
21 | 22 | ||
@@ -24,6 +25,35 @@ | |||
24 | DEFINE_SPINLOCK(rtc_lock); | 25 | DEFINE_SPINLOCK(rtc_lock); |
25 | EXPORT_SYMBOL_GPL(rtc_lock); | 26 | EXPORT_SYMBOL_GPL(rtc_lock); |
26 | 27 | ||
28 | static u64 atari_read_clk(struct clocksource *cs); | ||
29 | |||
30 | static struct clocksource atari_clk = { | ||
31 | .name = "mfp", | ||
32 | .rating = 100, | ||
33 | .read = atari_read_clk, | ||
34 | .mask = CLOCKSOURCE_MASK(32), | ||
35 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
36 | }; | ||
37 | |||
38 | static u32 clk_total; | ||
39 | static u8 last_timer_count; | ||
40 | |||
41 | static irqreturn_t mfp_timer_c_handler(int irq, void *dev_id) | ||
42 | { | ||
43 | irq_handler_t timer_routine = dev_id; | ||
44 | unsigned long flags; | ||
45 | |||
46 | local_irq_save(flags); | ||
47 | do { | ||
48 | last_timer_count = st_mfp.tim_dt_c; | ||
49 | } while (last_timer_count == 1); | ||
50 | clk_total += INT_TICKS; | ||
51 | timer_routine(0, NULL); | ||
52 | local_irq_restore(flags); | ||
53 | |||
54 | return IRQ_HANDLED; | ||
55 | } | ||
56 | |||
27 | void __init | 57 | void __init |
28 | atari_sched_init(irq_handler_t timer_routine) | 58 | atari_sched_init(irq_handler_t timer_routine) |
29 | { | 59 | { |
@@ -32,31 +62,33 @@ atari_sched_init(irq_handler_t timer_routine) | |||
32 | /* start timer C, div = 1:100 */ | 62 | /* start timer C, div = 1:100 */ |
33 | st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60; | 63 | st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60; |
34 | /* install interrupt service routine for MFP Timer C */ | 64 | /* install interrupt service routine for MFP Timer C */ |
35 | if (request_irq(IRQ_MFP_TIMC, timer_routine, 0, "timer", timer_routine)) | 65 | if (request_irq(IRQ_MFP_TIMC, mfp_timer_c_handler, IRQF_TIMER, "timer", |
66 | timer_routine)) | ||
36 | pr_err("Couldn't register timer interrupt\n"); | 67 | pr_err("Couldn't register timer interrupt\n"); |
68 | |||
69 | clocksource_register_hz(&atari_clk, INT_CLK); | ||
37 | } | 70 | } |
38 | 71 | ||
39 | /* ++andreas: gettimeoffset fixed to check for pending interrupt */ | 72 | /* ++andreas: gettimeoffset fixed to check for pending interrupt */ |
40 | 73 | ||
41 | #define TICK_SIZE 10000 | 74 | static u64 atari_read_clk(struct clocksource *cs) |
42 | |||
43 | /* This is always executed with interrupts disabled. */ | ||
44 | u32 atari_gettimeoffset(void) | ||
45 | { | 75 | { |
46 | u32 ticks, offset = 0; | 76 | unsigned long flags; |
47 | 77 | u8 count; | |
48 | /* read MFP timer C current value */ | 78 | u32 ticks; |
49 | ticks = st_mfp.tim_dt_c; | 79 | |
50 | /* The probability of underflow is less than 2% */ | 80 | local_irq_save(flags); |
51 | if (ticks > INT_TICKS - INT_TICKS / 50) | 81 | /* Ensure that the count is monotonically decreasing, even though |
52 | /* Check for pending timer interrupt */ | 82 | * the result may briefly stop changing after counter wrap-around. |
53 | if (st_mfp.int_pn_b & (1 << 5)) | 83 | */ |
54 | offset = TICK_SIZE; | 84 | count = min(st_mfp.tim_dt_c, last_timer_count); |
55 | 85 | last_timer_count = count; | |
56 | ticks = INT_TICKS - ticks; | 86 | |
57 | ticks = ticks * 10000L / INT_TICKS; | 87 | ticks = INT_TICKS - count; |
58 | 88 | ticks += clk_total; | |
59 | return (ticks + offset) * 1000; | 89 | local_irq_restore(flags); |
90 | |||
91 | return ticks; | ||
60 | } | 92 | } |
61 | 93 | ||
62 | 94 | ||
diff --git a/arch/m68k/bvme6000/config.c b/arch/m68k/bvme6000/config.c index 143ee9fa3893..8ebaabc931cd 100644 --- a/arch/m68k/bvme6000/config.c +++ b/arch/m68k/bvme6000/config.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/tty.h> | 20 | #include <linux/tty.h> |
21 | #include <linux/clocksource.h> | ||
21 | #include <linux/console.h> | 22 | #include <linux/console.h> |
22 | #include <linux/linkage.h> | 23 | #include <linux/linkage.h> |
23 | #include <linux/init.h> | 24 | #include <linux/init.h> |
@@ -39,16 +40,10 @@ | |||
39 | 40 | ||
40 | static void bvme6000_get_model(char *model); | 41 | static void bvme6000_get_model(char *model); |
41 | extern void bvme6000_sched_init(irq_handler_t handler); | 42 | extern void bvme6000_sched_init(irq_handler_t handler); |
42 | extern u32 bvme6000_gettimeoffset(void); | ||
43 | extern int bvme6000_hwclk (int, struct rtc_time *); | 43 | extern int bvme6000_hwclk (int, struct rtc_time *); |
44 | extern void bvme6000_reset (void); | 44 | extern void bvme6000_reset (void); |
45 | void bvme6000_set_vectors (void); | 45 | void bvme6000_set_vectors (void); |
46 | 46 | ||
47 | /* Save tick handler routine pointer, will point to xtime_update() in | ||
48 | * kernel/timer/timekeeping.c, called via bvme6000_process_int() */ | ||
49 | |||
50 | static irq_handler_t tick_handler; | ||
51 | |||
52 | 47 | ||
53 | int __init bvme6000_parse_bootinfo(const struct bi_record *bi) | 48 | int __init bvme6000_parse_bootinfo(const struct bi_record *bi) |
54 | { | 49 | { |
@@ -110,7 +105,6 @@ void __init config_bvme6000(void) | |||
110 | mach_max_dma_address = 0xffffffff; | 105 | mach_max_dma_address = 0xffffffff; |
111 | mach_sched_init = bvme6000_sched_init; | 106 | mach_sched_init = bvme6000_sched_init; |
112 | mach_init_IRQ = bvme6000_init_IRQ; | 107 | mach_init_IRQ = bvme6000_init_IRQ; |
113 | arch_gettimeoffset = bvme6000_gettimeoffset; | ||
114 | mach_hwclk = bvme6000_hwclk; | 108 | mach_hwclk = bvme6000_hwclk; |
115 | mach_reset = bvme6000_reset; | 109 | mach_reset = bvme6000_reset; |
116 | mach_get_model = bvme6000_get_model; | 110 | mach_get_model = bvme6000_get_model; |
@@ -154,15 +148,38 @@ irqreturn_t bvme6000_abort_int (int irq, void *dev_id) | |||
154 | return IRQ_HANDLED; | 148 | return IRQ_HANDLED; |
155 | } | 149 | } |
156 | 150 | ||
151 | static u64 bvme6000_read_clk(struct clocksource *cs); | ||
152 | |||
153 | static struct clocksource bvme6000_clk = { | ||
154 | .name = "rtc", | ||
155 | .rating = 250, | ||
156 | .read = bvme6000_read_clk, | ||
157 | .mask = CLOCKSOURCE_MASK(32), | ||
158 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
159 | }; | ||
160 | |||
161 | static u32 clk_total, clk_offset; | ||
162 | |||
163 | #define RTC_TIMER_CLOCK_FREQ 8000000 | ||
164 | #define RTC_TIMER_CYCLES (RTC_TIMER_CLOCK_FREQ / HZ) | ||
165 | #define RTC_TIMER_COUNT ((RTC_TIMER_CYCLES / 2) - 1) | ||
157 | 166 | ||
158 | static irqreturn_t bvme6000_timer_int (int irq, void *dev_id) | 167 | static irqreturn_t bvme6000_timer_int (int irq, void *dev_id) |
159 | { | 168 | { |
169 | irq_handler_t timer_routine = dev_id; | ||
170 | unsigned long flags; | ||
160 | volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; | 171 | volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; |
161 | unsigned char msr = rtc->msr & 0xc0; | 172 | unsigned char msr; |
162 | 173 | ||
174 | local_irq_save(flags); | ||
175 | msr = rtc->msr & 0xc0; | ||
163 | rtc->msr = msr | 0x20; /* Ack the interrupt */ | 176 | rtc->msr = msr | 0x20; /* Ack the interrupt */ |
177 | clk_total += RTC_TIMER_CYCLES; | ||
178 | clk_offset = 0; | ||
179 | timer_routine(0, NULL); | ||
180 | local_irq_restore(flags); | ||
164 | 181 | ||
165 | return tick_handler(irq, dev_id); | 182 | return IRQ_HANDLED; |
166 | } | 183 | } |
167 | 184 | ||
168 | /* | 185 | /* |
@@ -181,14 +198,13 @@ void bvme6000_sched_init (irq_handler_t timer_routine) | |||
181 | 198 | ||
182 | rtc->msr = 0; /* Ensure timer registers accessible */ | 199 | rtc->msr = 0; /* Ensure timer registers accessible */ |
183 | 200 | ||
184 | tick_handler = timer_routine; | 201 | if (request_irq(BVME_IRQ_RTC, bvme6000_timer_int, IRQF_TIMER, "timer", |
185 | if (request_irq(BVME_IRQ_RTC, bvme6000_timer_int, 0, | 202 | timer_routine)) |
186 | "timer", bvme6000_timer_int)) | ||
187 | panic ("Couldn't register timer int"); | 203 | panic ("Couldn't register timer int"); |
188 | 204 | ||
189 | rtc->t1cr_omr = 0x04; /* Mode 2, ext clk */ | 205 | rtc->t1cr_omr = 0x04; /* Mode 2, ext clk */ |
190 | rtc->t1msb = 39999 >> 8; | 206 | rtc->t1msb = RTC_TIMER_COUNT >> 8; |
191 | rtc->t1lsb = 39999 & 0xff; | 207 | rtc->t1lsb = RTC_TIMER_COUNT & 0xff; |
192 | rtc->irr_icr1 &= 0xef; /* Route timer 1 to INTR pin */ | 208 | rtc->irr_icr1 &= 0xef; /* Route timer 1 to INTR pin */ |
193 | rtc->msr = 0x40; /* Access int.cntrl, etc */ | 209 | rtc->msr = 0x40; /* Access int.cntrl, etc */ |
194 | rtc->pfr_icr0 = 0x80; /* Just timer 1 ints enabled */ | 210 | rtc->pfr_icr0 = 0x80; /* Just timer 1 ints enabled */ |
@@ -200,14 +216,14 @@ void bvme6000_sched_init (irq_handler_t timer_routine) | |||
200 | 216 | ||
201 | rtc->msr = msr; | 217 | rtc->msr = msr; |
202 | 218 | ||
219 | clocksource_register_hz(&bvme6000_clk, RTC_TIMER_CLOCK_FREQ); | ||
220 | |||
203 | if (request_irq(BVME_IRQ_ABORT, bvme6000_abort_int, 0, | 221 | if (request_irq(BVME_IRQ_ABORT, bvme6000_abort_int, 0, |
204 | "abort", bvme6000_abort_int)) | 222 | "abort", bvme6000_abort_int)) |
205 | panic ("Couldn't register abort int"); | 223 | panic ("Couldn't register abort int"); |
206 | } | 224 | } |
207 | 225 | ||
208 | 226 | ||
209 | /* This is always executed with interrupts disabled. */ | ||
210 | |||
211 | /* | 227 | /* |
212 | * NOTE: Don't accept any readings within 5us of rollover, as | 228 | * NOTE: Don't accept any readings within 5us of rollover, as |
213 | * the T1INT bit may be a little slow getting set. There is also | 229 | * the T1INT bit may be a little slow getting set. There is also |
@@ -215,14 +231,18 @@ void bvme6000_sched_init (irq_handler_t timer_routine) | |||
215 | * results... | 231 | * results... |
216 | */ | 232 | */ |
217 | 233 | ||
218 | u32 bvme6000_gettimeoffset(void) | 234 | static u64 bvme6000_read_clk(struct clocksource *cs) |
219 | { | 235 | { |
236 | unsigned long flags; | ||
220 | volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; | 237 | volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE; |
221 | volatile PitRegsPtr pit = (PitRegsPtr)BVME_PIT_BASE; | 238 | volatile PitRegsPtr pit = (PitRegsPtr)BVME_PIT_BASE; |
222 | unsigned char msr = rtc->msr & 0xc0; | 239 | unsigned char msr, msb; |
223 | unsigned char t1int, t1op; | 240 | unsigned char t1int, t1op; |
224 | u32 v = 800000, ov; | 241 | u32 v = 800000, ov; |
225 | 242 | ||
243 | local_irq_save(flags); | ||
244 | |||
245 | msr = rtc->msr & 0xc0; | ||
226 | rtc->msr = 0; /* Ensure timer registers accessible */ | 246 | rtc->msr = 0; /* Ensure timer registers accessible */ |
227 | 247 | ||
228 | do { | 248 | do { |
@@ -230,22 +250,25 @@ u32 bvme6000_gettimeoffset(void) | |||
230 | t1int = rtc->msr & 0x20; | 250 | t1int = rtc->msr & 0x20; |
231 | t1op = pit->pcdr & 0x04; | 251 | t1op = pit->pcdr & 0x04; |
232 | rtc->t1cr_omr |= 0x40; /* Latch timer1 */ | 252 | rtc->t1cr_omr |= 0x40; /* Latch timer1 */ |
233 | v = rtc->t1msb << 8; /* Read timer1 */ | 253 | msb = rtc->t1msb; /* Read timer1 */ |
234 | v |= rtc->t1lsb; /* Read timer1 */ | 254 | v = (msb << 8) | rtc->t1lsb; /* Read timer1 */ |
235 | } while (t1int != (rtc->msr & 0x20) || | 255 | } while (t1int != (rtc->msr & 0x20) || |
236 | t1op != (pit->pcdr & 0x04) || | 256 | t1op != (pit->pcdr & 0x04) || |
237 | abs(ov-v) > 80 || | 257 | abs(ov-v) > 80 || |
238 | v > 39960); | 258 | v > RTC_TIMER_COUNT - (RTC_TIMER_COUNT / 100)); |
239 | 259 | ||
240 | v = 39999 - v; | 260 | v = RTC_TIMER_COUNT - v; |
241 | if (!t1op) /* If in second half cycle.. */ | 261 | if (!t1op) /* If in second half cycle.. */ |
242 | v += 40000; | 262 | v += RTC_TIMER_CYCLES / 2; |
243 | v /= 8; /* Convert ticks to microseconds */ | 263 | if (msb > 0 && t1int) |
244 | if (t1int) | 264 | clk_offset = RTC_TIMER_CYCLES; |
245 | v += 10000; /* Int pending, + 10ms */ | ||
246 | rtc->msr = msr; | 265 | rtc->msr = msr; |
247 | 266 | ||
248 | return v * 1000; | 267 | v += clk_offset + clk_total; |
268 | |||
269 | local_irq_restore(flags); | ||
270 | |||
271 | return v; | ||
249 | } | 272 | } |
250 | 273 | ||
251 | /* | 274 | /* |
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig index 525421ae277d..fea392cfcf1b 100644 --- a/arch/m68k/configs/amiga_defconfig +++ b/arch/m68k/configs/amiga_defconfig | |||
@@ -56,6 +56,7 @@ CONFIG_TLS=m | |||
56 | CONFIG_XFRM_MIGRATE=y | 56 | CONFIG_XFRM_MIGRATE=y |
57 | CONFIG_NET_KEY=y | 57 | CONFIG_NET_KEY=y |
58 | CONFIG_XDP_SOCKETS=y | 58 | CONFIG_XDP_SOCKETS=y |
59 | CONFIG_XDP_SOCKETS_DIAG=m | ||
59 | CONFIG_INET=y | 60 | CONFIG_INET=y |
60 | CONFIG_IP_PNP=y | 61 | CONFIG_IP_PNP=y |
61 | CONFIG_IP_PNP_DHCP=y | 62 | CONFIG_IP_PNP_DHCP=y |
@@ -210,9 +211,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
210 | CONFIG_NF_TABLES_ARP=y | 211 | CONFIG_NF_TABLES_ARP=y |
211 | CONFIG_NF_FLOW_TABLE_IPV4=m | 212 | CONFIG_NF_FLOW_TABLE_IPV4=m |
212 | CONFIG_NF_LOG_ARP=m | 213 | CONFIG_NF_LOG_ARP=m |
213 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
214 | CONFIG_NFT_MASQ_IPV4=m | ||
215 | CONFIG_NFT_REDIR_IPV4=m | ||
216 | CONFIG_IP_NF_IPTABLES=m | 214 | CONFIG_IP_NF_IPTABLES=m |
217 | CONFIG_IP_NF_MATCH_AH=m | 215 | CONFIG_IP_NF_MATCH_AH=m |
218 | CONFIG_IP_NF_MATCH_ECN=m | 216 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -234,9 +232,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
234 | CONFIG_IP_NF_ARPFILTER=m | 232 | CONFIG_IP_NF_ARPFILTER=m |
235 | CONFIG_IP_NF_ARP_MANGLE=m | 233 | CONFIG_IP_NF_ARP_MANGLE=m |
236 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 234 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
237 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
238 | CONFIG_NFT_MASQ_IPV6=m | ||
239 | CONFIG_NFT_REDIR_IPV6=m | ||
240 | CONFIG_NFT_DUP_IPV6=m | 235 | CONFIG_NFT_DUP_IPV6=m |
241 | CONFIG_NFT_FIB_IPV6=m | 236 | CONFIG_NFT_FIB_IPV6=m |
242 | CONFIG_NF_FLOW_TABLE_IPV6=m | 237 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -313,7 +308,6 @@ CONFIG_AF_KCM=m | |||
313 | # CONFIG_WIRELESS is not set | 308 | # CONFIG_WIRELESS is not set |
314 | CONFIG_PSAMPLE=m | 309 | CONFIG_PSAMPLE=m |
315 | CONFIG_NET_IFE=m | 310 | CONFIG_NET_IFE=m |
316 | CONFIG_NET_DEVLINK=m | ||
317 | # CONFIG_UEVENT_HELPER is not set | 311 | # CONFIG_UEVENT_HELPER is not set |
318 | CONFIG_DEVTMPFS=y | 312 | CONFIG_DEVTMPFS=y |
319 | CONFIG_DEVTMPFS_MOUNT=y | 313 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -460,12 +454,12 @@ CONFIG_RTC_DRV_RP5C01=m | |||
460 | # CONFIG_VIRTIO_MENU is not set | 454 | # CONFIG_VIRTIO_MENU is not set |
461 | # CONFIG_IOMMU_SUPPORT is not set | 455 | # CONFIG_IOMMU_SUPPORT is not set |
462 | CONFIG_DAX=m | 456 | CONFIG_DAX=m |
457 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
463 | CONFIG_EXT4_FS=y | 458 | CONFIG_EXT4_FS=y |
464 | CONFIG_REISERFS_FS=m | 459 | CONFIG_REISERFS_FS=m |
465 | CONFIG_JFS_FS=m | 460 | CONFIG_JFS_FS=m |
466 | CONFIG_OCFS2_FS=m | 461 | CONFIG_OCFS2_FS=m |
467 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 462 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
468 | CONFIG_FS_ENCRYPTION=m | ||
469 | CONFIG_FANOTIFY=y | 463 | CONFIG_FANOTIFY=y |
470 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 464 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
471 | # CONFIG_PRINT_QUOTA_WARNING is not set | 465 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -573,9 +567,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
573 | CONFIG_CRYPTO_MORUS640=m | 567 | CONFIG_CRYPTO_MORUS640=m |
574 | CONFIG_CRYPTO_MORUS1280=m | 568 | CONFIG_CRYPTO_MORUS1280=m |
575 | CONFIG_CRYPTO_CFB=m | 569 | CONFIG_CRYPTO_CFB=m |
570 | CONFIG_CRYPTO_CTS=m | ||
576 | CONFIG_CRYPTO_LRW=m | 571 | CONFIG_CRYPTO_LRW=m |
577 | CONFIG_CRYPTO_OFB=m | 572 | CONFIG_CRYPTO_OFB=m |
578 | CONFIG_CRYPTO_PCBC=m | 573 | CONFIG_CRYPTO_PCBC=m |
574 | CONFIG_CRYPTO_XTS=m | ||
579 | CONFIG_CRYPTO_KEYWRAP=m | 575 | CONFIG_CRYPTO_KEYWRAP=m |
580 | CONFIG_CRYPTO_ADIANTUM=m | 576 | CONFIG_CRYPTO_ADIANTUM=m |
581 | CONFIG_CRYPTO_XCBC=m | 577 | CONFIG_CRYPTO_XCBC=m |
@@ -640,6 +636,7 @@ CONFIG_TEST_OVERFLOW=m | |||
640 | CONFIG_TEST_RHASHTABLE=m | 636 | CONFIG_TEST_RHASHTABLE=m |
641 | CONFIG_TEST_HASH=m | 637 | CONFIG_TEST_HASH=m |
642 | CONFIG_TEST_IDA=m | 638 | CONFIG_TEST_IDA=m |
639 | CONFIG_TEST_VMALLOC=m | ||
643 | CONFIG_TEST_USER_COPY=m | 640 | CONFIG_TEST_USER_COPY=m |
644 | CONFIG_TEST_BPF=m | 641 | CONFIG_TEST_BPF=m |
645 | CONFIG_FIND_BIT_BENCHMARK=m | 642 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -649,4 +646,5 @@ CONFIG_TEST_UDELAY=m | |||
649 | CONFIG_TEST_STATIC_KEYS=m | 646 | CONFIG_TEST_STATIC_KEYS=m |
650 | CONFIG_TEST_KMOD=m | 647 | CONFIG_TEST_KMOD=m |
651 | CONFIG_TEST_MEMCAT_P=m | 648 | CONFIG_TEST_MEMCAT_P=m |
649 | CONFIG_TEST_STACKINIT=m | ||
652 | CONFIG_EARLY_PRINTK=y | 650 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig index db0e654a88d5..2474d267460e 100644 --- a/arch/m68k/configs/apollo_defconfig +++ b/arch/m68k/configs/apollo_defconfig | |||
@@ -52,6 +52,7 @@ CONFIG_TLS=m | |||
52 | CONFIG_XFRM_MIGRATE=y | 52 | CONFIG_XFRM_MIGRATE=y |
53 | CONFIG_NET_KEY=y | 53 | CONFIG_NET_KEY=y |
54 | CONFIG_XDP_SOCKETS=y | 54 | CONFIG_XDP_SOCKETS=y |
55 | CONFIG_XDP_SOCKETS_DIAG=m | ||
55 | CONFIG_INET=y | 56 | CONFIG_INET=y |
56 | CONFIG_IP_PNP=y | 57 | CONFIG_IP_PNP=y |
57 | CONFIG_IP_PNP_DHCP=y | 58 | CONFIG_IP_PNP_DHCP=y |
@@ -206,9 +207,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
206 | CONFIG_NF_TABLES_ARP=y | 207 | CONFIG_NF_TABLES_ARP=y |
207 | CONFIG_NF_FLOW_TABLE_IPV4=m | 208 | CONFIG_NF_FLOW_TABLE_IPV4=m |
208 | CONFIG_NF_LOG_ARP=m | 209 | CONFIG_NF_LOG_ARP=m |
209 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
210 | CONFIG_NFT_MASQ_IPV4=m | ||
211 | CONFIG_NFT_REDIR_IPV4=m | ||
212 | CONFIG_IP_NF_IPTABLES=m | 210 | CONFIG_IP_NF_IPTABLES=m |
213 | CONFIG_IP_NF_MATCH_AH=m | 211 | CONFIG_IP_NF_MATCH_AH=m |
214 | CONFIG_IP_NF_MATCH_ECN=m | 212 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -230,9 +228,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
230 | CONFIG_IP_NF_ARPFILTER=m | 228 | CONFIG_IP_NF_ARPFILTER=m |
231 | CONFIG_IP_NF_ARP_MANGLE=m | 229 | CONFIG_IP_NF_ARP_MANGLE=m |
232 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 230 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
233 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
234 | CONFIG_NFT_MASQ_IPV6=m | ||
235 | CONFIG_NFT_REDIR_IPV6=m | ||
236 | CONFIG_NFT_DUP_IPV6=m | 231 | CONFIG_NFT_DUP_IPV6=m |
237 | CONFIG_NFT_FIB_IPV6=m | 232 | CONFIG_NFT_FIB_IPV6=m |
238 | CONFIG_NF_FLOW_TABLE_IPV6=m | 233 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -309,7 +304,6 @@ CONFIG_AF_KCM=m | |||
309 | # CONFIG_WIRELESS is not set | 304 | # CONFIG_WIRELESS is not set |
310 | CONFIG_PSAMPLE=m | 305 | CONFIG_PSAMPLE=m |
311 | CONFIG_NET_IFE=m | 306 | CONFIG_NET_IFE=m |
312 | CONFIG_NET_DEVLINK=m | ||
313 | # CONFIG_UEVENT_HELPER is not set | 307 | # CONFIG_UEVENT_HELPER is not set |
314 | CONFIG_DEVTMPFS=y | 308 | CONFIG_DEVTMPFS=y |
315 | CONFIG_DEVTMPFS_MOUNT=y | 309 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -420,12 +414,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
420 | # CONFIG_VIRTIO_MENU is not set | 414 | # CONFIG_VIRTIO_MENU is not set |
421 | # CONFIG_IOMMU_SUPPORT is not set | 415 | # CONFIG_IOMMU_SUPPORT is not set |
422 | CONFIG_DAX=m | 416 | CONFIG_DAX=m |
417 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
423 | CONFIG_EXT4_FS=y | 418 | CONFIG_EXT4_FS=y |
424 | CONFIG_REISERFS_FS=m | 419 | CONFIG_REISERFS_FS=m |
425 | CONFIG_JFS_FS=m | 420 | CONFIG_JFS_FS=m |
426 | CONFIG_OCFS2_FS=m | 421 | CONFIG_OCFS2_FS=m |
427 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 422 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
428 | CONFIG_FS_ENCRYPTION=m | ||
429 | CONFIG_FANOTIFY=y | 423 | CONFIG_FANOTIFY=y |
430 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 424 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
431 | # CONFIG_PRINT_QUOTA_WARNING is not set | 425 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -533,9 +527,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
533 | CONFIG_CRYPTO_MORUS640=m | 527 | CONFIG_CRYPTO_MORUS640=m |
534 | CONFIG_CRYPTO_MORUS1280=m | 528 | CONFIG_CRYPTO_MORUS1280=m |
535 | CONFIG_CRYPTO_CFB=m | 529 | CONFIG_CRYPTO_CFB=m |
530 | CONFIG_CRYPTO_CTS=m | ||
536 | CONFIG_CRYPTO_LRW=m | 531 | CONFIG_CRYPTO_LRW=m |
537 | CONFIG_CRYPTO_OFB=m | 532 | CONFIG_CRYPTO_OFB=m |
538 | CONFIG_CRYPTO_PCBC=m | 533 | CONFIG_CRYPTO_PCBC=m |
534 | CONFIG_CRYPTO_XTS=m | ||
539 | CONFIG_CRYPTO_KEYWRAP=m | 535 | CONFIG_CRYPTO_KEYWRAP=m |
540 | CONFIG_CRYPTO_ADIANTUM=m | 536 | CONFIG_CRYPTO_ADIANTUM=m |
541 | CONFIG_CRYPTO_XCBC=m | 537 | CONFIG_CRYPTO_XCBC=m |
@@ -600,6 +596,7 @@ CONFIG_TEST_OVERFLOW=m | |||
600 | CONFIG_TEST_RHASHTABLE=m | 596 | CONFIG_TEST_RHASHTABLE=m |
601 | CONFIG_TEST_HASH=m | 597 | CONFIG_TEST_HASH=m |
602 | CONFIG_TEST_IDA=m | 598 | CONFIG_TEST_IDA=m |
599 | CONFIG_TEST_VMALLOC=m | ||
603 | CONFIG_TEST_USER_COPY=m | 600 | CONFIG_TEST_USER_COPY=m |
604 | CONFIG_TEST_BPF=m | 601 | CONFIG_TEST_BPF=m |
605 | CONFIG_FIND_BIT_BENCHMARK=m | 602 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -609,4 +606,5 @@ CONFIG_TEST_UDELAY=m | |||
609 | CONFIG_TEST_STATIC_KEYS=m | 606 | CONFIG_TEST_STATIC_KEYS=m |
610 | CONFIG_TEST_KMOD=m | 607 | CONFIG_TEST_KMOD=m |
611 | CONFIG_TEST_MEMCAT_P=m | 608 | CONFIG_TEST_MEMCAT_P=m |
609 | CONFIG_TEST_STACKINIT=m | ||
612 | CONFIG_EARLY_PRINTK=y | 610 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig index 1451168eb789..0fc7d2992fe0 100644 --- a/arch/m68k/configs/atari_defconfig +++ b/arch/m68k/configs/atari_defconfig | |||
@@ -59,6 +59,7 @@ CONFIG_TLS=m | |||
59 | CONFIG_XFRM_MIGRATE=y | 59 | CONFIG_XFRM_MIGRATE=y |
60 | CONFIG_NET_KEY=y | 60 | CONFIG_NET_KEY=y |
61 | CONFIG_XDP_SOCKETS=y | 61 | CONFIG_XDP_SOCKETS=y |
62 | CONFIG_XDP_SOCKETS_DIAG=m | ||
62 | CONFIG_INET=y | 63 | CONFIG_INET=y |
63 | CONFIG_IP_PNP=y | 64 | CONFIG_IP_PNP=y |
64 | CONFIG_IP_PNP_DHCP=y | 65 | CONFIG_IP_PNP_DHCP=y |
@@ -213,9 +214,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
213 | CONFIG_NF_TABLES_ARP=y | 214 | CONFIG_NF_TABLES_ARP=y |
214 | CONFIG_NF_FLOW_TABLE_IPV4=m | 215 | CONFIG_NF_FLOW_TABLE_IPV4=m |
215 | CONFIG_NF_LOG_ARP=m | 216 | CONFIG_NF_LOG_ARP=m |
216 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
217 | CONFIG_NFT_MASQ_IPV4=m | ||
218 | CONFIG_NFT_REDIR_IPV4=m | ||
219 | CONFIG_IP_NF_IPTABLES=m | 217 | CONFIG_IP_NF_IPTABLES=m |
220 | CONFIG_IP_NF_MATCH_AH=m | 218 | CONFIG_IP_NF_MATCH_AH=m |
221 | CONFIG_IP_NF_MATCH_ECN=m | 219 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -237,9 +235,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
237 | CONFIG_IP_NF_ARPFILTER=m | 235 | CONFIG_IP_NF_ARPFILTER=m |
238 | CONFIG_IP_NF_ARP_MANGLE=m | 236 | CONFIG_IP_NF_ARP_MANGLE=m |
239 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 237 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
240 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
241 | CONFIG_NFT_MASQ_IPV6=m | ||
242 | CONFIG_NFT_REDIR_IPV6=m | ||
243 | CONFIG_NFT_DUP_IPV6=m | 238 | CONFIG_NFT_DUP_IPV6=m |
244 | CONFIG_NFT_FIB_IPV6=m | 239 | CONFIG_NFT_FIB_IPV6=m |
245 | CONFIG_NF_FLOW_TABLE_IPV6=m | 240 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -316,7 +311,6 @@ CONFIG_AF_KCM=m | |||
316 | # CONFIG_WIRELESS is not set | 311 | # CONFIG_WIRELESS is not set |
317 | CONFIG_PSAMPLE=m | 312 | CONFIG_PSAMPLE=m |
318 | CONFIG_NET_IFE=m | 313 | CONFIG_NET_IFE=m |
319 | CONFIG_NET_DEVLINK=m | ||
320 | # CONFIG_UEVENT_HELPER is not set | 314 | # CONFIG_UEVENT_HELPER is not set |
321 | CONFIG_DEVTMPFS=y | 315 | CONFIG_DEVTMPFS=y |
322 | CONFIG_DEVTMPFS_MOUNT=y | 316 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -442,12 +436,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
442 | # CONFIG_VIRTIO_MENU is not set | 436 | # CONFIG_VIRTIO_MENU is not set |
443 | # CONFIG_IOMMU_SUPPORT is not set | 437 | # CONFIG_IOMMU_SUPPORT is not set |
444 | CONFIG_DAX=m | 438 | CONFIG_DAX=m |
439 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
445 | CONFIG_EXT4_FS=y | 440 | CONFIG_EXT4_FS=y |
446 | CONFIG_REISERFS_FS=m | 441 | CONFIG_REISERFS_FS=m |
447 | CONFIG_JFS_FS=m | 442 | CONFIG_JFS_FS=m |
448 | CONFIG_OCFS2_FS=m | 443 | CONFIG_OCFS2_FS=m |
449 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 444 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
450 | CONFIG_FS_ENCRYPTION=m | ||
451 | CONFIG_FANOTIFY=y | 445 | CONFIG_FANOTIFY=y |
452 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 446 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
453 | # CONFIG_PRINT_QUOTA_WARNING is not set | 447 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -555,9 +549,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
555 | CONFIG_CRYPTO_MORUS640=m | 549 | CONFIG_CRYPTO_MORUS640=m |
556 | CONFIG_CRYPTO_MORUS1280=m | 550 | CONFIG_CRYPTO_MORUS1280=m |
557 | CONFIG_CRYPTO_CFB=m | 551 | CONFIG_CRYPTO_CFB=m |
552 | CONFIG_CRYPTO_CTS=m | ||
558 | CONFIG_CRYPTO_LRW=m | 553 | CONFIG_CRYPTO_LRW=m |
559 | CONFIG_CRYPTO_OFB=m | 554 | CONFIG_CRYPTO_OFB=m |
560 | CONFIG_CRYPTO_PCBC=m | 555 | CONFIG_CRYPTO_PCBC=m |
556 | CONFIG_CRYPTO_XTS=m | ||
561 | CONFIG_CRYPTO_KEYWRAP=m | 557 | CONFIG_CRYPTO_KEYWRAP=m |
562 | CONFIG_CRYPTO_ADIANTUM=m | 558 | CONFIG_CRYPTO_ADIANTUM=m |
563 | CONFIG_CRYPTO_XCBC=m | 559 | CONFIG_CRYPTO_XCBC=m |
@@ -622,6 +618,7 @@ CONFIG_TEST_OVERFLOW=m | |||
622 | CONFIG_TEST_RHASHTABLE=m | 618 | CONFIG_TEST_RHASHTABLE=m |
623 | CONFIG_TEST_HASH=m | 619 | CONFIG_TEST_HASH=m |
624 | CONFIG_TEST_IDA=m | 620 | CONFIG_TEST_IDA=m |
621 | CONFIG_TEST_VMALLOC=m | ||
625 | CONFIG_TEST_USER_COPY=m | 622 | CONFIG_TEST_USER_COPY=m |
626 | CONFIG_TEST_BPF=m | 623 | CONFIG_TEST_BPF=m |
627 | CONFIG_FIND_BIT_BENCHMARK=m | 624 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -631,4 +628,5 @@ CONFIG_TEST_UDELAY=m | |||
631 | CONFIG_TEST_STATIC_KEYS=m | 628 | CONFIG_TEST_STATIC_KEYS=m |
632 | CONFIG_TEST_KMOD=m | 629 | CONFIG_TEST_KMOD=m |
633 | CONFIG_TEST_MEMCAT_P=m | 630 | CONFIG_TEST_MEMCAT_P=m |
631 | CONFIG_TEST_STACKINIT=m | ||
634 | CONFIG_EARLY_PRINTK=y | 632 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig index b0d3609f5bb3..699df9fdf866 100644 --- a/arch/m68k/configs/bvme6000_defconfig +++ b/arch/m68k/configs/bvme6000_defconfig | |||
@@ -49,6 +49,7 @@ CONFIG_TLS=m | |||
49 | CONFIG_XFRM_MIGRATE=y | 49 | CONFIG_XFRM_MIGRATE=y |
50 | CONFIG_NET_KEY=y | 50 | CONFIG_NET_KEY=y |
51 | CONFIG_XDP_SOCKETS=y | 51 | CONFIG_XDP_SOCKETS=y |
52 | CONFIG_XDP_SOCKETS_DIAG=m | ||
52 | CONFIG_INET=y | 53 | CONFIG_INET=y |
53 | CONFIG_IP_PNP=y | 54 | CONFIG_IP_PNP=y |
54 | CONFIG_IP_PNP_DHCP=y | 55 | CONFIG_IP_PNP_DHCP=y |
@@ -203,9 +204,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
203 | CONFIG_NF_TABLES_ARP=y | 204 | CONFIG_NF_TABLES_ARP=y |
204 | CONFIG_NF_FLOW_TABLE_IPV4=m | 205 | CONFIG_NF_FLOW_TABLE_IPV4=m |
205 | CONFIG_NF_LOG_ARP=m | 206 | CONFIG_NF_LOG_ARP=m |
206 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
207 | CONFIG_NFT_MASQ_IPV4=m | ||
208 | CONFIG_NFT_REDIR_IPV4=m | ||
209 | CONFIG_IP_NF_IPTABLES=m | 207 | CONFIG_IP_NF_IPTABLES=m |
210 | CONFIG_IP_NF_MATCH_AH=m | 208 | CONFIG_IP_NF_MATCH_AH=m |
211 | CONFIG_IP_NF_MATCH_ECN=m | 209 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -227,9 +225,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
227 | CONFIG_IP_NF_ARPFILTER=m | 225 | CONFIG_IP_NF_ARPFILTER=m |
228 | CONFIG_IP_NF_ARP_MANGLE=m | 226 | CONFIG_IP_NF_ARP_MANGLE=m |
229 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 227 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
230 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
231 | CONFIG_NFT_MASQ_IPV6=m | ||
232 | CONFIG_NFT_REDIR_IPV6=m | ||
233 | CONFIG_NFT_DUP_IPV6=m | 228 | CONFIG_NFT_DUP_IPV6=m |
234 | CONFIG_NFT_FIB_IPV6=m | 229 | CONFIG_NFT_FIB_IPV6=m |
235 | CONFIG_NF_FLOW_TABLE_IPV6=m | 230 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -306,7 +301,6 @@ CONFIG_AF_KCM=m | |||
306 | # CONFIG_WIRELESS is not set | 301 | # CONFIG_WIRELESS is not set |
307 | CONFIG_PSAMPLE=m | 302 | CONFIG_PSAMPLE=m |
308 | CONFIG_NET_IFE=m | 303 | CONFIG_NET_IFE=m |
309 | CONFIG_NET_DEVLINK=m | ||
310 | # CONFIG_UEVENT_HELPER is not set | 304 | # CONFIG_UEVENT_HELPER is not set |
311 | CONFIG_DEVTMPFS=y | 305 | CONFIG_DEVTMPFS=y |
312 | CONFIG_DEVTMPFS_MOUNT=y | 306 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -413,12 +407,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
413 | # CONFIG_VIRTIO_MENU is not set | 407 | # CONFIG_VIRTIO_MENU is not set |
414 | # CONFIG_IOMMU_SUPPORT is not set | 408 | # CONFIG_IOMMU_SUPPORT is not set |
415 | CONFIG_DAX=m | 409 | CONFIG_DAX=m |
410 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
416 | CONFIG_EXT4_FS=y | 411 | CONFIG_EXT4_FS=y |
417 | CONFIG_REISERFS_FS=m | 412 | CONFIG_REISERFS_FS=m |
418 | CONFIG_JFS_FS=m | 413 | CONFIG_JFS_FS=m |
419 | CONFIG_OCFS2_FS=m | 414 | CONFIG_OCFS2_FS=m |
420 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 415 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
421 | CONFIG_FS_ENCRYPTION=m | ||
422 | CONFIG_FANOTIFY=y | 416 | CONFIG_FANOTIFY=y |
423 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 417 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
424 | # CONFIG_PRINT_QUOTA_WARNING is not set | 418 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -526,9 +520,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
526 | CONFIG_CRYPTO_MORUS640=m | 520 | CONFIG_CRYPTO_MORUS640=m |
527 | CONFIG_CRYPTO_MORUS1280=m | 521 | CONFIG_CRYPTO_MORUS1280=m |
528 | CONFIG_CRYPTO_CFB=m | 522 | CONFIG_CRYPTO_CFB=m |
523 | CONFIG_CRYPTO_CTS=m | ||
529 | CONFIG_CRYPTO_LRW=m | 524 | CONFIG_CRYPTO_LRW=m |
530 | CONFIG_CRYPTO_OFB=m | 525 | CONFIG_CRYPTO_OFB=m |
531 | CONFIG_CRYPTO_PCBC=m | 526 | CONFIG_CRYPTO_PCBC=m |
527 | CONFIG_CRYPTO_XTS=m | ||
532 | CONFIG_CRYPTO_KEYWRAP=m | 528 | CONFIG_CRYPTO_KEYWRAP=m |
533 | CONFIG_CRYPTO_ADIANTUM=m | 529 | CONFIG_CRYPTO_ADIANTUM=m |
534 | CONFIG_CRYPTO_XCBC=m | 530 | CONFIG_CRYPTO_XCBC=m |
@@ -593,6 +589,7 @@ CONFIG_TEST_OVERFLOW=m | |||
593 | CONFIG_TEST_RHASHTABLE=m | 589 | CONFIG_TEST_RHASHTABLE=m |
594 | CONFIG_TEST_HASH=m | 590 | CONFIG_TEST_HASH=m |
595 | CONFIG_TEST_IDA=m | 591 | CONFIG_TEST_IDA=m |
592 | CONFIG_TEST_VMALLOC=m | ||
596 | CONFIG_TEST_USER_COPY=m | 593 | CONFIG_TEST_USER_COPY=m |
597 | CONFIG_TEST_BPF=m | 594 | CONFIG_TEST_BPF=m |
598 | CONFIG_FIND_BIT_BENCHMARK=m | 595 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -602,4 +599,5 @@ CONFIG_TEST_UDELAY=m | |||
602 | CONFIG_TEST_STATIC_KEYS=m | 599 | CONFIG_TEST_STATIC_KEYS=m |
603 | CONFIG_TEST_KMOD=m | 600 | CONFIG_TEST_KMOD=m |
604 | CONFIG_TEST_MEMCAT_P=m | 601 | CONFIG_TEST_MEMCAT_P=m |
602 | CONFIG_TEST_STACKINIT=m | ||
605 | CONFIG_EARLY_PRINTK=y | 603 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig index 4ed7c151347c..b50802255324 100644 --- a/arch/m68k/configs/hp300_defconfig +++ b/arch/m68k/configs/hp300_defconfig | |||
@@ -51,6 +51,7 @@ CONFIG_TLS=m | |||
51 | CONFIG_XFRM_MIGRATE=y | 51 | CONFIG_XFRM_MIGRATE=y |
52 | CONFIG_NET_KEY=y | 52 | CONFIG_NET_KEY=y |
53 | CONFIG_XDP_SOCKETS=y | 53 | CONFIG_XDP_SOCKETS=y |
54 | CONFIG_XDP_SOCKETS_DIAG=m | ||
54 | CONFIG_INET=y | 55 | CONFIG_INET=y |
55 | CONFIG_IP_PNP=y | 56 | CONFIG_IP_PNP=y |
56 | CONFIG_IP_PNP_DHCP=y | 57 | CONFIG_IP_PNP_DHCP=y |
@@ -205,9 +206,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
205 | CONFIG_NF_TABLES_ARP=y | 206 | CONFIG_NF_TABLES_ARP=y |
206 | CONFIG_NF_FLOW_TABLE_IPV4=m | 207 | CONFIG_NF_FLOW_TABLE_IPV4=m |
207 | CONFIG_NF_LOG_ARP=m | 208 | CONFIG_NF_LOG_ARP=m |
208 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
209 | CONFIG_NFT_MASQ_IPV4=m | ||
210 | CONFIG_NFT_REDIR_IPV4=m | ||
211 | CONFIG_IP_NF_IPTABLES=m | 209 | CONFIG_IP_NF_IPTABLES=m |
212 | CONFIG_IP_NF_MATCH_AH=m | 210 | CONFIG_IP_NF_MATCH_AH=m |
213 | CONFIG_IP_NF_MATCH_ECN=m | 211 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -229,9 +227,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
229 | CONFIG_IP_NF_ARPFILTER=m | 227 | CONFIG_IP_NF_ARPFILTER=m |
230 | CONFIG_IP_NF_ARP_MANGLE=m | 228 | CONFIG_IP_NF_ARP_MANGLE=m |
231 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 229 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
232 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
233 | CONFIG_NFT_MASQ_IPV6=m | ||
234 | CONFIG_NFT_REDIR_IPV6=m | ||
235 | CONFIG_NFT_DUP_IPV6=m | 230 | CONFIG_NFT_DUP_IPV6=m |
236 | CONFIG_NFT_FIB_IPV6=m | 231 | CONFIG_NFT_FIB_IPV6=m |
237 | CONFIG_NF_FLOW_TABLE_IPV6=m | 232 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -308,7 +303,6 @@ CONFIG_AF_KCM=m | |||
308 | # CONFIG_WIRELESS is not set | 303 | # CONFIG_WIRELESS is not set |
309 | CONFIG_PSAMPLE=m | 304 | CONFIG_PSAMPLE=m |
310 | CONFIG_NET_IFE=m | 305 | CONFIG_NET_IFE=m |
311 | CONFIG_NET_DEVLINK=m | ||
312 | # CONFIG_UEVENT_HELPER is not set | 306 | # CONFIG_UEVENT_HELPER is not set |
313 | CONFIG_DEVTMPFS=y | 307 | CONFIG_DEVTMPFS=y |
314 | CONFIG_DEVTMPFS_MOUNT=y | 308 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -422,12 +416,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
422 | # CONFIG_VIRTIO_MENU is not set | 416 | # CONFIG_VIRTIO_MENU is not set |
423 | # CONFIG_IOMMU_SUPPORT is not set | 417 | # CONFIG_IOMMU_SUPPORT is not set |
424 | CONFIG_DAX=m | 418 | CONFIG_DAX=m |
419 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
425 | CONFIG_EXT4_FS=y | 420 | CONFIG_EXT4_FS=y |
426 | CONFIG_REISERFS_FS=m | 421 | CONFIG_REISERFS_FS=m |
427 | CONFIG_JFS_FS=m | 422 | CONFIG_JFS_FS=m |
428 | CONFIG_OCFS2_FS=m | 423 | CONFIG_OCFS2_FS=m |
429 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 424 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
430 | CONFIG_FS_ENCRYPTION=m | ||
431 | CONFIG_FANOTIFY=y | 425 | CONFIG_FANOTIFY=y |
432 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 426 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
433 | # CONFIG_PRINT_QUOTA_WARNING is not set | 427 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -535,9 +529,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
535 | CONFIG_CRYPTO_MORUS640=m | 529 | CONFIG_CRYPTO_MORUS640=m |
536 | CONFIG_CRYPTO_MORUS1280=m | 530 | CONFIG_CRYPTO_MORUS1280=m |
537 | CONFIG_CRYPTO_CFB=m | 531 | CONFIG_CRYPTO_CFB=m |
532 | CONFIG_CRYPTO_CTS=m | ||
538 | CONFIG_CRYPTO_LRW=m | 533 | CONFIG_CRYPTO_LRW=m |
539 | CONFIG_CRYPTO_OFB=m | 534 | CONFIG_CRYPTO_OFB=m |
540 | CONFIG_CRYPTO_PCBC=m | 535 | CONFIG_CRYPTO_PCBC=m |
536 | CONFIG_CRYPTO_XTS=m | ||
541 | CONFIG_CRYPTO_KEYWRAP=m | 537 | CONFIG_CRYPTO_KEYWRAP=m |
542 | CONFIG_CRYPTO_ADIANTUM=m | 538 | CONFIG_CRYPTO_ADIANTUM=m |
543 | CONFIG_CRYPTO_XCBC=m | 539 | CONFIG_CRYPTO_XCBC=m |
@@ -602,6 +598,7 @@ CONFIG_TEST_OVERFLOW=m | |||
602 | CONFIG_TEST_RHASHTABLE=m | 598 | CONFIG_TEST_RHASHTABLE=m |
603 | CONFIG_TEST_HASH=m | 599 | CONFIG_TEST_HASH=m |
604 | CONFIG_TEST_IDA=m | 600 | CONFIG_TEST_IDA=m |
601 | CONFIG_TEST_VMALLOC=m | ||
605 | CONFIG_TEST_USER_COPY=m | 602 | CONFIG_TEST_USER_COPY=m |
606 | CONFIG_TEST_BPF=m | 603 | CONFIG_TEST_BPF=m |
607 | CONFIG_FIND_BIT_BENCHMARK=m | 604 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -611,4 +608,5 @@ CONFIG_TEST_UDELAY=m | |||
611 | CONFIG_TEST_STATIC_KEYS=m | 608 | CONFIG_TEST_STATIC_KEYS=m |
612 | CONFIG_TEST_KMOD=m | 609 | CONFIG_TEST_KMOD=m |
613 | CONFIG_TEST_MEMCAT_P=m | 610 | CONFIG_TEST_MEMCAT_P=m |
611 | CONFIG_TEST_STACKINIT=m | ||
614 | CONFIG_EARLY_PRINTK=y | 612 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig index 0dc544e1ce1f..04e7d70f6030 100644 --- a/arch/m68k/configs/mac_defconfig +++ b/arch/m68k/configs/mac_defconfig | |||
@@ -50,6 +50,7 @@ CONFIG_TLS=m | |||
50 | CONFIG_XFRM_MIGRATE=y | 50 | CONFIG_XFRM_MIGRATE=y |
51 | CONFIG_NET_KEY=y | 51 | CONFIG_NET_KEY=y |
52 | CONFIG_XDP_SOCKETS=y | 52 | CONFIG_XDP_SOCKETS=y |
53 | CONFIG_XDP_SOCKETS_DIAG=m | ||
53 | CONFIG_INET=y | 54 | CONFIG_INET=y |
54 | CONFIG_IP_PNP=y | 55 | CONFIG_IP_PNP=y |
55 | CONFIG_IP_PNP_DHCP=y | 56 | CONFIG_IP_PNP_DHCP=y |
@@ -204,9 +205,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
204 | CONFIG_NF_TABLES_ARP=y | 205 | CONFIG_NF_TABLES_ARP=y |
205 | CONFIG_NF_FLOW_TABLE_IPV4=m | 206 | CONFIG_NF_FLOW_TABLE_IPV4=m |
206 | CONFIG_NF_LOG_ARP=m | 207 | CONFIG_NF_LOG_ARP=m |
207 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
208 | CONFIG_NFT_MASQ_IPV4=m | ||
209 | CONFIG_NFT_REDIR_IPV4=m | ||
210 | CONFIG_IP_NF_IPTABLES=m | 208 | CONFIG_IP_NF_IPTABLES=m |
211 | CONFIG_IP_NF_MATCH_AH=m | 209 | CONFIG_IP_NF_MATCH_AH=m |
212 | CONFIG_IP_NF_MATCH_ECN=m | 210 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -228,9 +226,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
228 | CONFIG_IP_NF_ARPFILTER=m | 226 | CONFIG_IP_NF_ARPFILTER=m |
229 | CONFIG_IP_NF_ARP_MANGLE=m | 227 | CONFIG_IP_NF_ARP_MANGLE=m |
230 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 228 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
231 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
232 | CONFIG_NFT_MASQ_IPV6=m | ||
233 | CONFIG_NFT_REDIR_IPV6=m | ||
234 | CONFIG_NFT_DUP_IPV6=m | 229 | CONFIG_NFT_DUP_IPV6=m |
235 | CONFIG_NFT_FIB_IPV6=m | 230 | CONFIG_NFT_FIB_IPV6=m |
236 | CONFIG_NF_FLOW_TABLE_IPV6=m | 231 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -310,7 +305,6 @@ CONFIG_AF_KCM=m | |||
310 | # CONFIG_WIRELESS is not set | 305 | # CONFIG_WIRELESS is not set |
311 | CONFIG_PSAMPLE=m | 306 | CONFIG_PSAMPLE=m |
312 | CONFIG_NET_IFE=m | 307 | CONFIG_NET_IFE=m |
313 | CONFIG_NET_DEVLINK=m | ||
314 | # CONFIG_UEVENT_HELPER is not set | 308 | # CONFIG_UEVENT_HELPER is not set |
315 | CONFIG_DEVTMPFS=y | 309 | CONFIG_DEVTMPFS=y |
316 | CONFIG_DEVTMPFS_MOUNT=y | 310 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -444,12 +438,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
444 | # CONFIG_VIRTIO_MENU is not set | 438 | # CONFIG_VIRTIO_MENU is not set |
445 | # CONFIG_IOMMU_SUPPORT is not set | 439 | # CONFIG_IOMMU_SUPPORT is not set |
446 | CONFIG_DAX=m | 440 | CONFIG_DAX=m |
441 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
447 | CONFIG_EXT4_FS=y | 442 | CONFIG_EXT4_FS=y |
448 | CONFIG_REISERFS_FS=m | 443 | CONFIG_REISERFS_FS=m |
449 | CONFIG_JFS_FS=m | 444 | CONFIG_JFS_FS=m |
450 | CONFIG_OCFS2_FS=m | 445 | CONFIG_OCFS2_FS=m |
451 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 446 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
452 | CONFIG_FS_ENCRYPTION=m | ||
453 | CONFIG_FANOTIFY=y | 447 | CONFIG_FANOTIFY=y |
454 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 448 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
455 | # CONFIG_PRINT_QUOTA_WARNING is not set | 449 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -557,9 +551,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
557 | CONFIG_CRYPTO_MORUS640=m | 551 | CONFIG_CRYPTO_MORUS640=m |
558 | CONFIG_CRYPTO_MORUS1280=m | 552 | CONFIG_CRYPTO_MORUS1280=m |
559 | CONFIG_CRYPTO_CFB=m | 553 | CONFIG_CRYPTO_CFB=m |
554 | CONFIG_CRYPTO_CTS=m | ||
560 | CONFIG_CRYPTO_LRW=m | 555 | CONFIG_CRYPTO_LRW=m |
561 | CONFIG_CRYPTO_OFB=m | 556 | CONFIG_CRYPTO_OFB=m |
562 | CONFIG_CRYPTO_PCBC=m | 557 | CONFIG_CRYPTO_PCBC=m |
558 | CONFIG_CRYPTO_XTS=m | ||
563 | CONFIG_CRYPTO_KEYWRAP=m | 559 | CONFIG_CRYPTO_KEYWRAP=m |
564 | CONFIG_CRYPTO_ADIANTUM=m | 560 | CONFIG_CRYPTO_ADIANTUM=m |
565 | CONFIG_CRYPTO_XCBC=m | 561 | CONFIG_CRYPTO_XCBC=m |
@@ -624,6 +620,7 @@ CONFIG_TEST_OVERFLOW=m | |||
624 | CONFIG_TEST_RHASHTABLE=m | 620 | CONFIG_TEST_RHASHTABLE=m |
625 | CONFIG_TEST_HASH=m | 621 | CONFIG_TEST_HASH=m |
626 | CONFIG_TEST_IDA=m | 622 | CONFIG_TEST_IDA=m |
623 | CONFIG_TEST_VMALLOC=m | ||
627 | CONFIG_TEST_USER_COPY=m | 624 | CONFIG_TEST_USER_COPY=m |
628 | CONFIG_TEST_BPF=m | 625 | CONFIG_TEST_BPF=m |
629 | CONFIG_FIND_BIT_BENCHMARK=m | 626 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -633,4 +630,5 @@ CONFIG_TEST_UDELAY=m | |||
633 | CONFIG_TEST_STATIC_KEYS=m | 630 | CONFIG_TEST_STATIC_KEYS=m |
634 | CONFIG_TEST_KMOD=m | 631 | CONFIG_TEST_KMOD=m |
635 | CONFIG_TEST_MEMCAT_P=m | 632 | CONFIG_TEST_MEMCAT_P=m |
633 | CONFIG_TEST_STACKINIT=m | ||
636 | CONFIG_EARLY_PRINTK=y | 634 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig index 5a7b7b0d6e72..5e1cc4c17852 100644 --- a/arch/m68k/configs/multi_defconfig +++ b/arch/m68k/configs/multi_defconfig | |||
@@ -70,6 +70,7 @@ CONFIG_TLS=m | |||
70 | CONFIG_XFRM_MIGRATE=y | 70 | CONFIG_XFRM_MIGRATE=y |
71 | CONFIG_NET_KEY=y | 71 | CONFIG_NET_KEY=y |
72 | CONFIG_XDP_SOCKETS=y | 72 | CONFIG_XDP_SOCKETS=y |
73 | CONFIG_XDP_SOCKETS_DIAG=m | ||
73 | CONFIG_INET=y | 74 | CONFIG_INET=y |
74 | CONFIG_IP_PNP=y | 75 | CONFIG_IP_PNP=y |
75 | CONFIG_IP_PNP_DHCP=y | 76 | CONFIG_IP_PNP_DHCP=y |
@@ -224,9 +225,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
224 | CONFIG_NF_TABLES_ARP=y | 225 | CONFIG_NF_TABLES_ARP=y |
225 | CONFIG_NF_FLOW_TABLE_IPV4=m | 226 | CONFIG_NF_FLOW_TABLE_IPV4=m |
226 | CONFIG_NF_LOG_ARP=m | 227 | CONFIG_NF_LOG_ARP=m |
227 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
228 | CONFIG_NFT_MASQ_IPV4=m | ||
229 | CONFIG_NFT_REDIR_IPV4=m | ||
230 | CONFIG_IP_NF_IPTABLES=m | 228 | CONFIG_IP_NF_IPTABLES=m |
231 | CONFIG_IP_NF_MATCH_AH=m | 229 | CONFIG_IP_NF_MATCH_AH=m |
232 | CONFIG_IP_NF_MATCH_ECN=m | 230 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -248,9 +246,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
248 | CONFIG_IP_NF_ARPFILTER=m | 246 | CONFIG_IP_NF_ARPFILTER=m |
249 | CONFIG_IP_NF_ARP_MANGLE=m | 247 | CONFIG_IP_NF_ARP_MANGLE=m |
250 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 248 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
251 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
252 | CONFIG_NFT_MASQ_IPV6=m | ||
253 | CONFIG_NFT_REDIR_IPV6=m | ||
254 | CONFIG_NFT_DUP_IPV6=m | 249 | CONFIG_NFT_DUP_IPV6=m |
255 | CONFIG_NFT_FIB_IPV6=m | 250 | CONFIG_NFT_FIB_IPV6=m |
256 | CONFIG_NF_FLOW_TABLE_IPV6=m | 251 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -330,7 +325,6 @@ CONFIG_AF_KCM=m | |||
330 | # CONFIG_WIRELESS is not set | 325 | # CONFIG_WIRELESS is not set |
331 | CONFIG_PSAMPLE=m | 326 | CONFIG_PSAMPLE=m |
332 | CONFIG_NET_IFE=m | 327 | CONFIG_NET_IFE=m |
333 | CONFIG_NET_DEVLINK=m | ||
334 | # CONFIG_UEVENT_HELPER is not set | 328 | # CONFIG_UEVENT_HELPER is not set |
335 | CONFIG_DEVTMPFS=y | 329 | CONFIG_DEVTMPFS=y |
336 | CONFIG_DEVTMPFS_MOUNT=y | 330 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -526,12 +520,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
526 | # CONFIG_VIRTIO_MENU is not set | 520 | # CONFIG_VIRTIO_MENU is not set |
527 | # CONFIG_IOMMU_SUPPORT is not set | 521 | # CONFIG_IOMMU_SUPPORT is not set |
528 | CONFIG_DAX=m | 522 | CONFIG_DAX=m |
523 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
529 | CONFIG_EXT4_FS=y | 524 | CONFIG_EXT4_FS=y |
530 | CONFIG_REISERFS_FS=m | 525 | CONFIG_REISERFS_FS=m |
531 | CONFIG_JFS_FS=m | 526 | CONFIG_JFS_FS=m |
532 | CONFIG_OCFS2_FS=m | 527 | CONFIG_OCFS2_FS=m |
533 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 528 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
534 | CONFIG_FS_ENCRYPTION=m | ||
535 | CONFIG_FANOTIFY=y | 529 | CONFIG_FANOTIFY=y |
536 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 530 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
537 | # CONFIG_PRINT_QUOTA_WARNING is not set | 531 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -639,9 +633,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
639 | CONFIG_CRYPTO_MORUS640=m | 633 | CONFIG_CRYPTO_MORUS640=m |
640 | CONFIG_CRYPTO_MORUS1280=m | 634 | CONFIG_CRYPTO_MORUS1280=m |
641 | CONFIG_CRYPTO_CFB=m | 635 | CONFIG_CRYPTO_CFB=m |
636 | CONFIG_CRYPTO_CTS=m | ||
642 | CONFIG_CRYPTO_LRW=m | 637 | CONFIG_CRYPTO_LRW=m |
643 | CONFIG_CRYPTO_OFB=m | 638 | CONFIG_CRYPTO_OFB=m |
644 | CONFIG_CRYPTO_PCBC=m | 639 | CONFIG_CRYPTO_PCBC=m |
640 | CONFIG_CRYPTO_XTS=m | ||
645 | CONFIG_CRYPTO_KEYWRAP=m | 641 | CONFIG_CRYPTO_KEYWRAP=m |
646 | CONFIG_CRYPTO_ADIANTUM=m | 642 | CONFIG_CRYPTO_ADIANTUM=m |
647 | CONFIG_CRYPTO_XCBC=m | 643 | CONFIG_CRYPTO_XCBC=m |
@@ -706,6 +702,7 @@ CONFIG_TEST_OVERFLOW=m | |||
706 | CONFIG_TEST_RHASHTABLE=m | 702 | CONFIG_TEST_RHASHTABLE=m |
707 | CONFIG_TEST_HASH=m | 703 | CONFIG_TEST_HASH=m |
708 | CONFIG_TEST_IDA=m | 704 | CONFIG_TEST_IDA=m |
705 | CONFIG_TEST_VMALLOC=m | ||
709 | CONFIG_TEST_USER_COPY=m | 706 | CONFIG_TEST_USER_COPY=m |
710 | CONFIG_TEST_BPF=m | 707 | CONFIG_TEST_BPF=m |
711 | CONFIG_FIND_BIT_BENCHMARK=m | 708 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -715,4 +712,5 @@ CONFIG_TEST_UDELAY=m | |||
715 | CONFIG_TEST_STATIC_KEYS=m | 712 | CONFIG_TEST_STATIC_KEYS=m |
716 | CONFIG_TEST_KMOD=m | 713 | CONFIG_TEST_KMOD=m |
717 | CONFIG_TEST_MEMCAT_P=m | 714 | CONFIG_TEST_MEMCAT_P=m |
715 | CONFIG_TEST_STACKINIT=m | ||
718 | CONFIG_EARLY_PRINTK=y | 716 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig index 71eb9be1803b..170ac8792c2d 100644 --- a/arch/m68k/configs/mvme147_defconfig +++ b/arch/m68k/configs/mvme147_defconfig | |||
@@ -48,6 +48,7 @@ CONFIG_TLS=m | |||
48 | CONFIG_XFRM_MIGRATE=y | 48 | CONFIG_XFRM_MIGRATE=y |
49 | CONFIG_NET_KEY=y | 49 | CONFIG_NET_KEY=y |
50 | CONFIG_XDP_SOCKETS=y | 50 | CONFIG_XDP_SOCKETS=y |
51 | CONFIG_XDP_SOCKETS_DIAG=m | ||
51 | CONFIG_INET=y | 52 | CONFIG_INET=y |
52 | CONFIG_IP_PNP=y | 53 | CONFIG_IP_PNP=y |
53 | CONFIG_IP_PNP_DHCP=y | 54 | CONFIG_IP_PNP_DHCP=y |
@@ -202,9 +203,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
202 | CONFIG_NF_TABLES_ARP=y | 203 | CONFIG_NF_TABLES_ARP=y |
203 | CONFIG_NF_FLOW_TABLE_IPV4=m | 204 | CONFIG_NF_FLOW_TABLE_IPV4=m |
204 | CONFIG_NF_LOG_ARP=m | 205 | CONFIG_NF_LOG_ARP=m |
205 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
206 | CONFIG_NFT_MASQ_IPV4=m | ||
207 | CONFIG_NFT_REDIR_IPV4=m | ||
208 | CONFIG_IP_NF_IPTABLES=m | 206 | CONFIG_IP_NF_IPTABLES=m |
209 | CONFIG_IP_NF_MATCH_AH=m | 207 | CONFIG_IP_NF_MATCH_AH=m |
210 | CONFIG_IP_NF_MATCH_ECN=m | 208 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -226,9 +224,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
226 | CONFIG_IP_NF_ARPFILTER=m | 224 | CONFIG_IP_NF_ARPFILTER=m |
227 | CONFIG_IP_NF_ARP_MANGLE=m | 225 | CONFIG_IP_NF_ARP_MANGLE=m |
228 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 226 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
229 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
230 | CONFIG_NFT_MASQ_IPV6=m | ||
231 | CONFIG_NFT_REDIR_IPV6=m | ||
232 | CONFIG_NFT_DUP_IPV6=m | 227 | CONFIG_NFT_DUP_IPV6=m |
233 | CONFIG_NFT_FIB_IPV6=m | 228 | CONFIG_NFT_FIB_IPV6=m |
234 | CONFIG_NF_FLOW_TABLE_IPV6=m | 229 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -305,7 +300,6 @@ CONFIG_AF_KCM=m | |||
305 | # CONFIG_WIRELESS is not set | 300 | # CONFIG_WIRELESS is not set |
306 | CONFIG_PSAMPLE=m | 301 | CONFIG_PSAMPLE=m |
307 | CONFIG_NET_IFE=m | 302 | CONFIG_NET_IFE=m |
308 | CONFIG_NET_DEVLINK=m | ||
309 | # CONFIG_UEVENT_HELPER is not set | 303 | # CONFIG_UEVENT_HELPER is not set |
310 | CONFIG_DEVTMPFS=y | 304 | CONFIG_DEVTMPFS=y |
311 | CONFIG_DEVTMPFS_MOUNT=y | 305 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -412,12 +406,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
412 | # CONFIG_VIRTIO_MENU is not set | 406 | # CONFIG_VIRTIO_MENU is not set |
413 | # CONFIG_IOMMU_SUPPORT is not set | 407 | # CONFIG_IOMMU_SUPPORT is not set |
414 | CONFIG_DAX=m | 408 | CONFIG_DAX=m |
409 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
415 | CONFIG_EXT4_FS=y | 410 | CONFIG_EXT4_FS=y |
416 | CONFIG_REISERFS_FS=m | 411 | CONFIG_REISERFS_FS=m |
417 | CONFIG_JFS_FS=m | 412 | CONFIG_JFS_FS=m |
418 | CONFIG_OCFS2_FS=m | 413 | CONFIG_OCFS2_FS=m |
419 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 414 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
420 | CONFIG_FS_ENCRYPTION=m | ||
421 | CONFIG_FANOTIFY=y | 415 | CONFIG_FANOTIFY=y |
422 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 416 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
423 | # CONFIG_PRINT_QUOTA_WARNING is not set | 417 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -525,9 +519,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
525 | CONFIG_CRYPTO_MORUS640=m | 519 | CONFIG_CRYPTO_MORUS640=m |
526 | CONFIG_CRYPTO_MORUS1280=m | 520 | CONFIG_CRYPTO_MORUS1280=m |
527 | CONFIG_CRYPTO_CFB=m | 521 | CONFIG_CRYPTO_CFB=m |
522 | CONFIG_CRYPTO_CTS=m | ||
528 | CONFIG_CRYPTO_LRW=m | 523 | CONFIG_CRYPTO_LRW=m |
529 | CONFIG_CRYPTO_OFB=m | 524 | CONFIG_CRYPTO_OFB=m |
530 | CONFIG_CRYPTO_PCBC=m | 525 | CONFIG_CRYPTO_PCBC=m |
526 | CONFIG_CRYPTO_XTS=m | ||
531 | CONFIG_CRYPTO_KEYWRAP=m | 527 | CONFIG_CRYPTO_KEYWRAP=m |
532 | CONFIG_CRYPTO_ADIANTUM=m | 528 | CONFIG_CRYPTO_ADIANTUM=m |
533 | CONFIG_CRYPTO_XCBC=m | 529 | CONFIG_CRYPTO_XCBC=m |
@@ -592,6 +588,7 @@ CONFIG_TEST_OVERFLOW=m | |||
592 | CONFIG_TEST_RHASHTABLE=m | 588 | CONFIG_TEST_RHASHTABLE=m |
593 | CONFIG_TEST_HASH=m | 589 | CONFIG_TEST_HASH=m |
594 | CONFIG_TEST_IDA=m | 590 | CONFIG_TEST_IDA=m |
591 | CONFIG_TEST_VMALLOC=m | ||
595 | CONFIG_TEST_USER_COPY=m | 592 | CONFIG_TEST_USER_COPY=m |
596 | CONFIG_TEST_BPF=m | 593 | CONFIG_TEST_BPF=m |
597 | CONFIG_FIND_BIT_BENCHMARK=m | 594 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -601,4 +598,5 @@ CONFIG_TEST_UDELAY=m | |||
601 | CONFIG_TEST_STATIC_KEYS=m | 598 | CONFIG_TEST_STATIC_KEYS=m |
602 | CONFIG_TEST_KMOD=m | 599 | CONFIG_TEST_KMOD=m |
603 | CONFIG_TEST_MEMCAT_P=m | 600 | CONFIG_TEST_MEMCAT_P=m |
601 | CONFIG_TEST_STACKINIT=m | ||
604 | CONFIG_EARLY_PRINTK=y | 602 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig index ea2ebd4241c0..d865592a423e 100644 --- a/arch/m68k/configs/mvme16x_defconfig +++ b/arch/m68k/configs/mvme16x_defconfig | |||
@@ -49,6 +49,7 @@ CONFIG_TLS=m | |||
49 | CONFIG_XFRM_MIGRATE=y | 49 | CONFIG_XFRM_MIGRATE=y |
50 | CONFIG_NET_KEY=y | 50 | CONFIG_NET_KEY=y |
51 | CONFIG_XDP_SOCKETS=y | 51 | CONFIG_XDP_SOCKETS=y |
52 | CONFIG_XDP_SOCKETS_DIAG=m | ||
52 | CONFIG_INET=y | 53 | CONFIG_INET=y |
53 | CONFIG_IP_PNP=y | 54 | CONFIG_IP_PNP=y |
54 | CONFIG_IP_PNP_DHCP=y | 55 | CONFIG_IP_PNP_DHCP=y |
@@ -203,9 +204,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
203 | CONFIG_NF_TABLES_ARP=y | 204 | CONFIG_NF_TABLES_ARP=y |
204 | CONFIG_NF_FLOW_TABLE_IPV4=m | 205 | CONFIG_NF_FLOW_TABLE_IPV4=m |
205 | CONFIG_NF_LOG_ARP=m | 206 | CONFIG_NF_LOG_ARP=m |
206 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
207 | CONFIG_NFT_MASQ_IPV4=m | ||
208 | CONFIG_NFT_REDIR_IPV4=m | ||
209 | CONFIG_IP_NF_IPTABLES=m | 207 | CONFIG_IP_NF_IPTABLES=m |
210 | CONFIG_IP_NF_MATCH_AH=m | 208 | CONFIG_IP_NF_MATCH_AH=m |
211 | CONFIG_IP_NF_MATCH_ECN=m | 209 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -227,9 +225,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
227 | CONFIG_IP_NF_ARPFILTER=m | 225 | CONFIG_IP_NF_ARPFILTER=m |
228 | CONFIG_IP_NF_ARP_MANGLE=m | 226 | CONFIG_IP_NF_ARP_MANGLE=m |
229 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 227 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
230 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
231 | CONFIG_NFT_MASQ_IPV6=m | ||
232 | CONFIG_NFT_REDIR_IPV6=m | ||
233 | CONFIG_NFT_DUP_IPV6=m | 228 | CONFIG_NFT_DUP_IPV6=m |
234 | CONFIG_NFT_FIB_IPV6=m | 229 | CONFIG_NFT_FIB_IPV6=m |
235 | CONFIG_NF_FLOW_TABLE_IPV6=m | 230 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -306,7 +301,6 @@ CONFIG_AF_KCM=m | |||
306 | # CONFIG_WIRELESS is not set | 301 | # CONFIG_WIRELESS is not set |
307 | CONFIG_PSAMPLE=m | 302 | CONFIG_PSAMPLE=m |
308 | CONFIG_NET_IFE=m | 303 | CONFIG_NET_IFE=m |
309 | CONFIG_NET_DEVLINK=m | ||
310 | # CONFIG_UEVENT_HELPER is not set | 304 | # CONFIG_UEVENT_HELPER is not set |
311 | CONFIG_DEVTMPFS=y | 305 | CONFIG_DEVTMPFS=y |
312 | CONFIG_DEVTMPFS_MOUNT=y | 306 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -413,12 +407,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
413 | # CONFIG_VIRTIO_MENU is not set | 407 | # CONFIG_VIRTIO_MENU is not set |
414 | # CONFIG_IOMMU_SUPPORT is not set | 408 | # CONFIG_IOMMU_SUPPORT is not set |
415 | CONFIG_DAX=m | 409 | CONFIG_DAX=m |
410 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
416 | CONFIG_EXT4_FS=y | 411 | CONFIG_EXT4_FS=y |
417 | CONFIG_REISERFS_FS=m | 412 | CONFIG_REISERFS_FS=m |
418 | CONFIG_JFS_FS=m | 413 | CONFIG_JFS_FS=m |
419 | CONFIG_OCFS2_FS=m | 414 | CONFIG_OCFS2_FS=m |
420 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 415 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
421 | CONFIG_FS_ENCRYPTION=m | ||
422 | CONFIG_FANOTIFY=y | 416 | CONFIG_FANOTIFY=y |
423 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 417 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
424 | # CONFIG_PRINT_QUOTA_WARNING is not set | 418 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -526,9 +520,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
526 | CONFIG_CRYPTO_MORUS640=m | 520 | CONFIG_CRYPTO_MORUS640=m |
527 | CONFIG_CRYPTO_MORUS1280=m | 521 | CONFIG_CRYPTO_MORUS1280=m |
528 | CONFIG_CRYPTO_CFB=m | 522 | CONFIG_CRYPTO_CFB=m |
523 | CONFIG_CRYPTO_CTS=m | ||
529 | CONFIG_CRYPTO_LRW=m | 524 | CONFIG_CRYPTO_LRW=m |
530 | CONFIG_CRYPTO_OFB=m | 525 | CONFIG_CRYPTO_OFB=m |
531 | CONFIG_CRYPTO_PCBC=m | 526 | CONFIG_CRYPTO_PCBC=m |
527 | CONFIG_CRYPTO_XTS=m | ||
532 | CONFIG_CRYPTO_KEYWRAP=m | 528 | CONFIG_CRYPTO_KEYWRAP=m |
533 | CONFIG_CRYPTO_ADIANTUM=m | 529 | CONFIG_CRYPTO_ADIANTUM=m |
534 | CONFIG_CRYPTO_XCBC=m | 530 | CONFIG_CRYPTO_XCBC=m |
@@ -593,6 +589,7 @@ CONFIG_TEST_OVERFLOW=m | |||
593 | CONFIG_TEST_RHASHTABLE=m | 589 | CONFIG_TEST_RHASHTABLE=m |
594 | CONFIG_TEST_HASH=m | 590 | CONFIG_TEST_HASH=m |
595 | CONFIG_TEST_IDA=m | 591 | CONFIG_TEST_IDA=m |
592 | CONFIG_TEST_VMALLOC=m | ||
596 | CONFIG_TEST_USER_COPY=m | 593 | CONFIG_TEST_USER_COPY=m |
597 | CONFIG_TEST_BPF=m | 594 | CONFIG_TEST_BPF=m |
598 | CONFIG_FIND_BIT_BENCHMARK=m | 595 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -602,4 +599,5 @@ CONFIG_TEST_UDELAY=m | |||
602 | CONFIG_TEST_STATIC_KEYS=m | 599 | CONFIG_TEST_STATIC_KEYS=m |
603 | CONFIG_TEST_KMOD=m | 600 | CONFIG_TEST_KMOD=m |
604 | CONFIG_TEST_MEMCAT_P=m | 601 | CONFIG_TEST_MEMCAT_P=m |
602 | CONFIG_TEST_STACKINIT=m | ||
605 | CONFIG_EARLY_PRINTK=y | 603 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig index cef6dc47c725..034a9de90484 100644 --- a/arch/m68k/configs/q40_defconfig +++ b/arch/m68k/configs/q40_defconfig | |||
@@ -50,6 +50,7 @@ CONFIG_TLS=m | |||
50 | CONFIG_XFRM_MIGRATE=y | 50 | CONFIG_XFRM_MIGRATE=y |
51 | CONFIG_NET_KEY=y | 51 | CONFIG_NET_KEY=y |
52 | CONFIG_XDP_SOCKETS=y | 52 | CONFIG_XDP_SOCKETS=y |
53 | CONFIG_XDP_SOCKETS_DIAG=m | ||
53 | CONFIG_INET=y | 54 | CONFIG_INET=y |
54 | CONFIG_IP_PNP=y | 55 | CONFIG_IP_PNP=y |
55 | CONFIG_IP_PNP_DHCP=y | 56 | CONFIG_IP_PNP_DHCP=y |
@@ -204,9 +205,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
204 | CONFIG_NF_TABLES_ARP=y | 205 | CONFIG_NF_TABLES_ARP=y |
205 | CONFIG_NF_FLOW_TABLE_IPV4=m | 206 | CONFIG_NF_FLOW_TABLE_IPV4=m |
206 | CONFIG_NF_LOG_ARP=m | 207 | CONFIG_NF_LOG_ARP=m |
207 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
208 | CONFIG_NFT_MASQ_IPV4=m | ||
209 | CONFIG_NFT_REDIR_IPV4=m | ||
210 | CONFIG_IP_NF_IPTABLES=m | 208 | CONFIG_IP_NF_IPTABLES=m |
211 | CONFIG_IP_NF_MATCH_AH=m | 209 | CONFIG_IP_NF_MATCH_AH=m |
212 | CONFIG_IP_NF_MATCH_ECN=m | 210 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -228,9 +226,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
228 | CONFIG_IP_NF_ARPFILTER=m | 226 | CONFIG_IP_NF_ARPFILTER=m |
229 | CONFIG_IP_NF_ARP_MANGLE=m | 227 | CONFIG_IP_NF_ARP_MANGLE=m |
230 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 228 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
231 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
232 | CONFIG_NFT_MASQ_IPV6=m | ||
233 | CONFIG_NFT_REDIR_IPV6=m | ||
234 | CONFIG_NFT_DUP_IPV6=m | 229 | CONFIG_NFT_DUP_IPV6=m |
235 | CONFIG_NFT_FIB_IPV6=m | 230 | CONFIG_NFT_FIB_IPV6=m |
236 | CONFIG_NF_FLOW_TABLE_IPV6=m | 231 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -307,7 +302,6 @@ CONFIG_AF_KCM=m | |||
307 | # CONFIG_WIRELESS is not set | 302 | # CONFIG_WIRELESS is not set |
308 | CONFIG_PSAMPLE=m | 303 | CONFIG_PSAMPLE=m |
309 | CONFIG_NET_IFE=m | 304 | CONFIG_NET_IFE=m |
310 | CONFIG_NET_DEVLINK=m | ||
311 | # CONFIG_UEVENT_HELPER is not set | 305 | # CONFIG_UEVENT_HELPER is not set |
312 | CONFIG_DEVTMPFS=y | 306 | CONFIG_DEVTMPFS=y |
313 | CONFIG_DEVTMPFS_MOUNT=y | 307 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -431,12 +425,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
431 | # CONFIG_VIRTIO_MENU is not set | 425 | # CONFIG_VIRTIO_MENU is not set |
432 | # CONFIG_IOMMU_SUPPORT is not set | 426 | # CONFIG_IOMMU_SUPPORT is not set |
433 | CONFIG_DAX=m | 427 | CONFIG_DAX=m |
428 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
434 | CONFIG_EXT4_FS=y | 429 | CONFIG_EXT4_FS=y |
435 | CONFIG_REISERFS_FS=m | 430 | CONFIG_REISERFS_FS=m |
436 | CONFIG_JFS_FS=m | 431 | CONFIG_JFS_FS=m |
437 | CONFIG_OCFS2_FS=m | 432 | CONFIG_OCFS2_FS=m |
438 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 433 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
439 | CONFIG_FS_ENCRYPTION=m | ||
440 | CONFIG_FANOTIFY=y | 434 | CONFIG_FANOTIFY=y |
441 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 435 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
442 | # CONFIG_PRINT_QUOTA_WARNING is not set | 436 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -544,9 +538,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
544 | CONFIG_CRYPTO_MORUS640=m | 538 | CONFIG_CRYPTO_MORUS640=m |
545 | CONFIG_CRYPTO_MORUS1280=m | 539 | CONFIG_CRYPTO_MORUS1280=m |
546 | CONFIG_CRYPTO_CFB=m | 540 | CONFIG_CRYPTO_CFB=m |
541 | CONFIG_CRYPTO_CTS=m | ||
547 | CONFIG_CRYPTO_LRW=m | 542 | CONFIG_CRYPTO_LRW=m |
548 | CONFIG_CRYPTO_OFB=m | 543 | CONFIG_CRYPTO_OFB=m |
549 | CONFIG_CRYPTO_PCBC=m | 544 | CONFIG_CRYPTO_PCBC=m |
545 | CONFIG_CRYPTO_XTS=m | ||
550 | CONFIG_CRYPTO_KEYWRAP=m | 546 | CONFIG_CRYPTO_KEYWRAP=m |
551 | CONFIG_CRYPTO_ADIANTUM=m | 547 | CONFIG_CRYPTO_ADIANTUM=m |
552 | CONFIG_CRYPTO_XCBC=m | 548 | CONFIG_CRYPTO_XCBC=m |
@@ -611,6 +607,7 @@ CONFIG_TEST_OVERFLOW=m | |||
611 | CONFIG_TEST_RHASHTABLE=m | 607 | CONFIG_TEST_RHASHTABLE=m |
612 | CONFIG_TEST_HASH=m | 608 | CONFIG_TEST_HASH=m |
613 | CONFIG_TEST_IDA=m | 609 | CONFIG_TEST_IDA=m |
610 | CONFIG_TEST_VMALLOC=m | ||
614 | CONFIG_TEST_USER_COPY=m | 611 | CONFIG_TEST_USER_COPY=m |
615 | CONFIG_TEST_BPF=m | 612 | CONFIG_TEST_BPF=m |
616 | CONFIG_FIND_BIT_BENCHMARK=m | 613 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -620,4 +617,5 @@ CONFIG_TEST_UDELAY=m | |||
620 | CONFIG_TEST_STATIC_KEYS=m | 617 | CONFIG_TEST_STATIC_KEYS=m |
621 | CONFIG_TEST_KMOD=m | 618 | CONFIG_TEST_KMOD=m |
622 | CONFIG_TEST_MEMCAT_P=m | 619 | CONFIG_TEST_MEMCAT_P=m |
620 | CONFIG_TEST_STACKINIT=m | ||
623 | CONFIG_EARLY_PRINTK=y | 621 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig index 69f2282dc4e9..49be0f9fcd8d 100644 --- a/arch/m68k/configs/sun3_defconfig +++ b/arch/m68k/configs/sun3_defconfig | |||
@@ -46,6 +46,7 @@ CONFIG_TLS=m | |||
46 | CONFIG_XFRM_MIGRATE=y | 46 | CONFIG_XFRM_MIGRATE=y |
47 | CONFIG_NET_KEY=y | 47 | CONFIG_NET_KEY=y |
48 | CONFIG_XDP_SOCKETS=y | 48 | CONFIG_XDP_SOCKETS=y |
49 | CONFIG_XDP_SOCKETS_DIAG=m | ||
49 | CONFIG_INET=y | 50 | CONFIG_INET=y |
50 | CONFIG_IP_PNP=y | 51 | CONFIG_IP_PNP=y |
51 | CONFIG_IP_PNP_DHCP=y | 52 | CONFIG_IP_PNP_DHCP=y |
@@ -200,9 +201,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
200 | CONFIG_NF_TABLES_ARP=y | 201 | CONFIG_NF_TABLES_ARP=y |
201 | CONFIG_NF_FLOW_TABLE_IPV4=m | 202 | CONFIG_NF_FLOW_TABLE_IPV4=m |
202 | CONFIG_NF_LOG_ARP=m | 203 | CONFIG_NF_LOG_ARP=m |
203 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
204 | CONFIG_NFT_MASQ_IPV4=m | ||
205 | CONFIG_NFT_REDIR_IPV4=m | ||
206 | CONFIG_IP_NF_IPTABLES=m | 204 | CONFIG_IP_NF_IPTABLES=m |
207 | CONFIG_IP_NF_MATCH_AH=m | 205 | CONFIG_IP_NF_MATCH_AH=m |
208 | CONFIG_IP_NF_MATCH_ECN=m | 206 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -224,9 +222,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
224 | CONFIG_IP_NF_ARPFILTER=m | 222 | CONFIG_IP_NF_ARPFILTER=m |
225 | CONFIG_IP_NF_ARP_MANGLE=m | 223 | CONFIG_IP_NF_ARP_MANGLE=m |
226 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 224 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
227 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
228 | CONFIG_NFT_MASQ_IPV6=m | ||
229 | CONFIG_NFT_REDIR_IPV6=m | ||
230 | CONFIG_NFT_DUP_IPV6=m | 225 | CONFIG_NFT_DUP_IPV6=m |
231 | CONFIG_NFT_FIB_IPV6=m | 226 | CONFIG_NFT_FIB_IPV6=m |
232 | CONFIG_NF_FLOW_TABLE_IPV6=m | 227 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -303,7 +298,6 @@ CONFIG_AF_KCM=m | |||
303 | # CONFIG_WIRELESS is not set | 298 | # CONFIG_WIRELESS is not set |
304 | CONFIG_PSAMPLE=m | 299 | CONFIG_PSAMPLE=m |
305 | CONFIG_NET_IFE=m | 300 | CONFIG_NET_IFE=m |
306 | CONFIG_NET_DEVLINK=m | ||
307 | # CONFIG_UEVENT_HELPER is not set | 301 | # CONFIG_UEVENT_HELPER is not set |
308 | CONFIG_DEVTMPFS=y | 302 | CONFIG_DEVTMPFS=y |
309 | CONFIG_DEVTMPFS_MOUNT=y | 303 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -415,12 +409,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
415 | # CONFIG_VIRTIO_MENU is not set | 409 | # CONFIG_VIRTIO_MENU is not set |
416 | # CONFIG_IOMMU_SUPPORT is not set | 410 | # CONFIG_IOMMU_SUPPORT is not set |
417 | CONFIG_DAX=m | 411 | CONFIG_DAX=m |
412 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
418 | CONFIG_EXT4_FS=y | 413 | CONFIG_EXT4_FS=y |
419 | CONFIG_REISERFS_FS=m | 414 | CONFIG_REISERFS_FS=m |
420 | CONFIG_JFS_FS=m | 415 | CONFIG_JFS_FS=m |
421 | CONFIG_OCFS2_FS=m | 416 | CONFIG_OCFS2_FS=m |
422 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 417 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
423 | CONFIG_FS_ENCRYPTION=m | ||
424 | CONFIG_FANOTIFY=y | 418 | CONFIG_FANOTIFY=y |
425 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 419 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
426 | # CONFIG_PRINT_QUOTA_WARNING is not set | 420 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -528,9 +522,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
528 | CONFIG_CRYPTO_MORUS640=m | 522 | CONFIG_CRYPTO_MORUS640=m |
529 | CONFIG_CRYPTO_MORUS1280=m | 523 | CONFIG_CRYPTO_MORUS1280=m |
530 | CONFIG_CRYPTO_CFB=m | 524 | CONFIG_CRYPTO_CFB=m |
525 | CONFIG_CRYPTO_CTS=m | ||
531 | CONFIG_CRYPTO_LRW=m | 526 | CONFIG_CRYPTO_LRW=m |
532 | CONFIG_CRYPTO_OFB=m | 527 | CONFIG_CRYPTO_OFB=m |
533 | CONFIG_CRYPTO_PCBC=m | 528 | CONFIG_CRYPTO_PCBC=m |
529 | CONFIG_CRYPTO_XTS=m | ||
534 | CONFIG_CRYPTO_KEYWRAP=m | 530 | CONFIG_CRYPTO_KEYWRAP=m |
535 | CONFIG_CRYPTO_ADIANTUM=m | 531 | CONFIG_CRYPTO_ADIANTUM=m |
536 | CONFIG_CRYPTO_XCBC=m | 532 | CONFIG_CRYPTO_XCBC=m |
@@ -595,6 +591,7 @@ CONFIG_TEST_OVERFLOW=m | |||
595 | CONFIG_TEST_RHASHTABLE=m | 591 | CONFIG_TEST_RHASHTABLE=m |
596 | CONFIG_TEST_HASH=m | 592 | CONFIG_TEST_HASH=m |
597 | CONFIG_TEST_IDA=m | 593 | CONFIG_TEST_IDA=m |
594 | CONFIG_TEST_VMALLOC=m | ||
598 | CONFIG_TEST_USER_COPY=m | 595 | CONFIG_TEST_USER_COPY=m |
599 | CONFIG_TEST_BPF=m | 596 | CONFIG_TEST_BPF=m |
600 | CONFIG_FIND_BIT_BENCHMARK=m | 597 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -604,3 +601,4 @@ CONFIG_TEST_UDELAY=m | |||
604 | CONFIG_TEST_STATIC_KEYS=m | 601 | CONFIG_TEST_STATIC_KEYS=m |
605 | CONFIG_TEST_KMOD=m | 602 | CONFIG_TEST_KMOD=m |
606 | CONFIG_TEST_MEMCAT_P=m | 603 | CONFIG_TEST_MEMCAT_P=m |
604 | CONFIG_TEST_STACKINIT=m | ||
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig index e91267e868b2..a71acf4a6004 100644 --- a/arch/m68k/configs/sun3x_defconfig +++ b/arch/m68k/configs/sun3x_defconfig | |||
@@ -46,6 +46,7 @@ CONFIG_TLS=m | |||
46 | CONFIG_XFRM_MIGRATE=y | 46 | CONFIG_XFRM_MIGRATE=y |
47 | CONFIG_NET_KEY=y | 47 | CONFIG_NET_KEY=y |
48 | CONFIG_XDP_SOCKETS=y | 48 | CONFIG_XDP_SOCKETS=y |
49 | CONFIG_XDP_SOCKETS_DIAG=m | ||
49 | CONFIG_INET=y | 50 | CONFIG_INET=y |
50 | CONFIG_IP_PNP=y | 51 | CONFIG_IP_PNP=y |
51 | CONFIG_IP_PNP_DHCP=y | 52 | CONFIG_IP_PNP_DHCP=y |
@@ -200,9 +201,6 @@ CONFIG_NFT_FIB_IPV4=m | |||
200 | CONFIG_NF_TABLES_ARP=y | 201 | CONFIG_NF_TABLES_ARP=y |
201 | CONFIG_NF_FLOW_TABLE_IPV4=m | 202 | CONFIG_NF_FLOW_TABLE_IPV4=m |
202 | CONFIG_NF_LOG_ARP=m | 203 | CONFIG_NF_LOG_ARP=m |
203 | CONFIG_NFT_CHAIN_NAT_IPV4=m | ||
204 | CONFIG_NFT_MASQ_IPV4=m | ||
205 | CONFIG_NFT_REDIR_IPV4=m | ||
206 | CONFIG_IP_NF_IPTABLES=m | 204 | CONFIG_IP_NF_IPTABLES=m |
207 | CONFIG_IP_NF_MATCH_AH=m | 205 | CONFIG_IP_NF_MATCH_AH=m |
208 | CONFIG_IP_NF_MATCH_ECN=m | 206 | CONFIG_IP_NF_MATCH_ECN=m |
@@ -224,9 +222,6 @@ CONFIG_IP_NF_ARPTABLES=m | |||
224 | CONFIG_IP_NF_ARPFILTER=m | 222 | CONFIG_IP_NF_ARPFILTER=m |
225 | CONFIG_IP_NF_ARP_MANGLE=m | 223 | CONFIG_IP_NF_ARP_MANGLE=m |
226 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m | 224 | CONFIG_NFT_CHAIN_ROUTE_IPV6=m |
227 | CONFIG_NFT_CHAIN_NAT_IPV6=m | ||
228 | CONFIG_NFT_MASQ_IPV6=m | ||
229 | CONFIG_NFT_REDIR_IPV6=m | ||
230 | CONFIG_NFT_DUP_IPV6=m | 225 | CONFIG_NFT_DUP_IPV6=m |
231 | CONFIG_NFT_FIB_IPV6=m | 226 | CONFIG_NFT_FIB_IPV6=m |
232 | CONFIG_NF_FLOW_TABLE_IPV6=m | 227 | CONFIG_NF_FLOW_TABLE_IPV6=m |
@@ -303,7 +298,6 @@ CONFIG_AF_KCM=m | |||
303 | # CONFIG_WIRELESS is not set | 298 | # CONFIG_WIRELESS is not set |
304 | CONFIG_PSAMPLE=m | 299 | CONFIG_PSAMPLE=m |
305 | CONFIG_NET_IFE=m | 300 | CONFIG_NET_IFE=m |
306 | CONFIG_NET_DEVLINK=m | ||
307 | # CONFIG_UEVENT_HELPER is not set | 301 | # CONFIG_UEVENT_HELPER is not set |
308 | CONFIG_DEVTMPFS=y | 302 | CONFIG_DEVTMPFS=y |
309 | CONFIG_DEVTMPFS_MOUNT=y | 303 | CONFIG_DEVTMPFS_MOUNT=y |
@@ -414,12 +408,12 @@ CONFIG_RTC_DRV_GENERIC=m | |||
414 | # CONFIG_VIRTIO_MENU is not set | 408 | # CONFIG_VIRTIO_MENU is not set |
415 | # CONFIG_IOMMU_SUPPORT is not set | 409 | # CONFIG_IOMMU_SUPPORT is not set |
416 | CONFIG_DAX=m | 410 | CONFIG_DAX=m |
411 | # CONFIG_VALIDATE_FS_PARSER is not set | ||
417 | CONFIG_EXT4_FS=y | 412 | CONFIG_EXT4_FS=y |
418 | CONFIG_REISERFS_FS=m | 413 | CONFIG_REISERFS_FS=m |
419 | CONFIG_JFS_FS=m | 414 | CONFIG_JFS_FS=m |
420 | CONFIG_OCFS2_FS=m | 415 | CONFIG_OCFS2_FS=m |
421 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set | 416 | # CONFIG_OCFS2_DEBUG_MASKLOG is not set |
422 | CONFIG_FS_ENCRYPTION=m | ||
423 | CONFIG_FANOTIFY=y | 417 | CONFIG_FANOTIFY=y |
424 | CONFIG_QUOTA_NETLINK_INTERFACE=y | 418 | CONFIG_QUOTA_NETLINK_INTERFACE=y |
425 | # CONFIG_PRINT_QUOTA_WARNING is not set | 419 | # CONFIG_PRINT_QUOTA_WARNING is not set |
@@ -527,9 +521,11 @@ CONFIG_CRYPTO_AEGIS256=m | |||
527 | CONFIG_CRYPTO_MORUS640=m | 521 | CONFIG_CRYPTO_MORUS640=m |
528 | CONFIG_CRYPTO_MORUS1280=m | 522 | CONFIG_CRYPTO_MORUS1280=m |
529 | CONFIG_CRYPTO_CFB=m | 523 | CONFIG_CRYPTO_CFB=m |
524 | CONFIG_CRYPTO_CTS=m | ||
530 | CONFIG_CRYPTO_LRW=m | 525 | CONFIG_CRYPTO_LRW=m |
531 | CONFIG_CRYPTO_OFB=m | 526 | CONFIG_CRYPTO_OFB=m |
532 | CONFIG_CRYPTO_PCBC=m | 527 | CONFIG_CRYPTO_PCBC=m |
528 | CONFIG_CRYPTO_XTS=m | ||
533 | CONFIG_CRYPTO_KEYWRAP=m | 529 | CONFIG_CRYPTO_KEYWRAP=m |
534 | CONFIG_CRYPTO_ADIANTUM=m | 530 | CONFIG_CRYPTO_ADIANTUM=m |
535 | CONFIG_CRYPTO_XCBC=m | 531 | CONFIG_CRYPTO_XCBC=m |
@@ -594,6 +590,7 @@ CONFIG_TEST_OVERFLOW=m | |||
594 | CONFIG_TEST_RHASHTABLE=m | 590 | CONFIG_TEST_RHASHTABLE=m |
595 | CONFIG_TEST_HASH=m | 591 | CONFIG_TEST_HASH=m |
596 | CONFIG_TEST_IDA=m | 592 | CONFIG_TEST_IDA=m |
593 | CONFIG_TEST_VMALLOC=m | ||
597 | CONFIG_TEST_USER_COPY=m | 594 | CONFIG_TEST_USER_COPY=m |
598 | CONFIG_TEST_BPF=m | 595 | CONFIG_TEST_BPF=m |
599 | CONFIG_FIND_BIT_BENCHMARK=m | 596 | CONFIG_FIND_BIT_BENCHMARK=m |
@@ -603,4 +600,5 @@ CONFIG_TEST_UDELAY=m | |||
603 | CONFIG_TEST_STATIC_KEYS=m | 600 | CONFIG_TEST_STATIC_KEYS=m |
604 | CONFIG_TEST_KMOD=m | 601 | CONFIG_TEST_KMOD=m |
605 | CONFIG_TEST_MEMCAT_P=m | 602 | CONFIG_TEST_MEMCAT_P=m |
603 | CONFIG_TEST_STACKINIT=m | ||
606 | CONFIG_EARLY_PRINTK=y | 604 | CONFIG_EARLY_PRINTK=y |
diff --git a/arch/m68k/hp300/config.c b/arch/m68k/hp300/config.c index a19bcd23f80b..a161d44fd20b 100644 --- a/arch/m68k/hp300/config.c +++ b/arch/m68k/hp300/config.c | |||
@@ -254,7 +254,6 @@ void __init config_hp300(void) | |||
254 | mach_sched_init = hp300_sched_init; | 254 | mach_sched_init = hp300_sched_init; |
255 | mach_init_IRQ = hp300_init_IRQ; | 255 | mach_init_IRQ = hp300_init_IRQ; |
256 | mach_get_model = hp300_get_model; | 256 | mach_get_model = hp300_get_model; |
257 | arch_gettimeoffset = hp300_gettimeoffset; | ||
258 | mach_hwclk = hp300_hwclk; | 257 | mach_hwclk = hp300_hwclk; |
259 | mach_get_ss = hp300_get_ss; | 258 | mach_get_ss = hp300_get_ss; |
260 | mach_reset = hp300_reset; | 259 | mach_reset = hp300_reset; |
diff --git a/arch/m68k/hp300/time.c b/arch/m68k/hp300/time.c index 289d928a46cb..bfee13e1d0fe 100644 --- a/arch/m68k/hp300/time.c +++ b/arch/m68k/hp300/time.c | |||
@@ -8,6 +8,7 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <asm/ptrace.h> | 10 | #include <asm/ptrace.h> |
11 | #include <linux/clocksource.h> | ||
11 | #include <linux/types.h> | 12 | #include <linux/types.h> |
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
13 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
@@ -19,6 +20,18 @@ | |||
19 | #include <asm/traps.h> | 20 | #include <asm/traps.h> |
20 | #include <asm/blinken.h> | 21 | #include <asm/blinken.h> |
21 | 22 | ||
23 | static u64 hp300_read_clk(struct clocksource *cs); | ||
24 | |||
25 | static struct clocksource hp300_clk = { | ||
26 | .name = "timer", | ||
27 | .rating = 250, | ||
28 | .read = hp300_read_clk, | ||
29 | .mask = CLOCKSOURCE_MASK(32), | ||
30 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
31 | }; | ||
32 | |||
33 | static u32 clk_total, clk_offset; | ||
34 | |||
22 | /* Clock hardware definitions */ | 35 | /* Clock hardware definitions */ |
23 | 36 | ||
24 | #define CLOCKBASE 0xf05f8000 | 37 | #define CLOCKBASE 0xf05f8000 |
@@ -28,39 +41,61 @@ | |||
28 | #define CLKCR3 CLKCR1 | 41 | #define CLKCR3 CLKCR1 |
29 | #define CLKSR CLKCR2 | 42 | #define CLKSR CLKCR2 |
30 | #define CLKMSB1 0x5 | 43 | #define CLKMSB1 0x5 |
44 | #define CLKLSB1 0x7 | ||
31 | #define CLKMSB2 0x9 | 45 | #define CLKMSB2 0x9 |
32 | #define CLKMSB3 0xD | 46 | #define CLKMSB3 0xD |
33 | 47 | ||
48 | #define CLKSR_INT1 BIT(0) | ||
49 | |||
34 | /* This is for machines which generate the exact clock. */ | 50 | /* This is for machines which generate the exact clock. */ |
35 | #define USECS_PER_JIFFY (1000000/HZ) | ||
36 | 51 | ||
37 | #define INTVAL ((10000 / 4) - 1) | 52 | #define HP300_TIMER_CLOCK_FREQ 250000 |
53 | #define HP300_TIMER_CYCLES (HP300_TIMER_CLOCK_FREQ / HZ) | ||
54 | #define INTVAL (HP300_TIMER_CYCLES - 1) | ||
38 | 55 | ||
39 | static irqreturn_t hp300_tick(int irq, void *dev_id) | 56 | static irqreturn_t hp300_tick(int irq, void *dev_id) |
40 | { | 57 | { |
58 | irq_handler_t timer_routine = dev_id; | ||
59 | unsigned long flags; | ||
41 | unsigned long tmp; | 60 | unsigned long tmp; |
42 | irq_handler_t vector = dev_id; | 61 | |
62 | local_irq_save(flags); | ||
43 | in_8(CLOCKBASE + CLKSR); | 63 | in_8(CLOCKBASE + CLKSR); |
44 | asm volatile ("movpw %1@(5),%0" : "=d" (tmp) : "a" (CLOCKBASE)); | 64 | asm volatile ("movpw %1@(5),%0" : "=d" (tmp) : "a" (CLOCKBASE)); |
65 | clk_total += INTVAL; | ||
66 | clk_offset = 0; | ||
67 | timer_routine(0, NULL); | ||
68 | local_irq_restore(flags); | ||
69 | |||
45 | /* Turn off the network and SCSI leds */ | 70 | /* Turn off the network and SCSI leds */ |
46 | blinken_leds(0, 0xe0); | 71 | blinken_leds(0, 0xe0); |
47 | return vector(irq, NULL); | 72 | return IRQ_HANDLED; |
48 | } | 73 | } |
49 | 74 | ||
50 | u32 hp300_gettimeoffset(void) | 75 | static u64 hp300_read_clk(struct clocksource *cs) |
51 | { | 76 | { |
52 | /* Read current timer 1 value */ | 77 | unsigned long flags; |
53 | unsigned char lsb, msb1, msb2; | 78 | unsigned char lsb, msb, msb_new; |
54 | unsigned short ticks; | 79 | u32 ticks; |
55 | 80 | ||
56 | msb1 = in_8(CLOCKBASE + 5); | 81 | local_irq_save(flags); |
57 | lsb = in_8(CLOCKBASE + 7); | 82 | /* Read current timer 1 value */ |
58 | msb2 = in_8(CLOCKBASE + 5); | 83 | msb = in_8(CLOCKBASE + CLKMSB1); |
59 | if (msb1 != msb2) | 84 | again: |
60 | /* A carry happened while we were reading. Read it again */ | 85 | if ((in_8(CLOCKBASE + CLKSR) & CLKSR_INT1) && msb > 0) |
61 | lsb = in_8(CLOCKBASE + 7); | 86 | clk_offset = INTVAL; |
62 | ticks = INTVAL - ((msb2 << 8) | lsb); | 87 | lsb = in_8(CLOCKBASE + CLKLSB1); |
63 | return ((USECS_PER_JIFFY * ticks) / INTVAL) * 1000; | 88 | msb_new = in_8(CLOCKBASE + CLKMSB1); |
89 | if (msb_new != msb) { | ||
90 | msb = msb_new; | ||
91 | goto again; | ||
92 | } | ||
93 | |||
94 | ticks = INTVAL - ((msb << 8) | lsb); | ||
95 | ticks += clk_offset + clk_total; | ||
96 | local_irq_restore(flags); | ||
97 | |||
98 | return ticks; | ||
64 | } | 99 | } |
65 | 100 | ||
66 | void __init hp300_sched_init(irq_handler_t vector) | 101 | void __init hp300_sched_init(irq_handler_t vector) |
@@ -70,9 +105,11 @@ void __init hp300_sched_init(irq_handler_t vector) | |||
70 | 105 | ||
71 | asm volatile(" movpw %0,%1@(5)" : : "d" (INTVAL), "a" (CLOCKBASE)); | 106 | asm volatile(" movpw %0,%1@(5)" : : "d" (INTVAL), "a" (CLOCKBASE)); |
72 | 107 | ||
73 | if (request_irq(IRQ_AUTO_6, hp300_tick, 0, "timer tick", vector)) | 108 | if (request_irq(IRQ_AUTO_6, hp300_tick, IRQF_TIMER, "timer tick", vector)) |
74 | pr_err("Couldn't register timer interrupt\n"); | 109 | pr_err("Couldn't register timer interrupt\n"); |
75 | 110 | ||
76 | out_8(CLOCKBASE + CLKCR2, 0x1); /* select CR1 */ | 111 | out_8(CLOCKBASE + CLKCR2, 0x1); /* select CR1 */ |
77 | out_8(CLOCKBASE + CLKCR1, 0x40); /* enable irq */ | 112 | out_8(CLOCKBASE + CLKCR1, 0x40); /* enable irq */ |
113 | |||
114 | clocksource_register_hz(&hp300_clk, HP300_TIMER_CLOCK_FREQ); | ||
78 | } | 115 | } |
diff --git a/arch/m68k/hp300/time.h b/arch/m68k/hp300/time.h index f5583ec4033d..1d77b55cc72a 100644 --- a/arch/m68k/hp300/time.h +++ b/arch/m68k/hp300/time.h | |||
@@ -1,2 +1 @@ | |||
1 | extern void hp300_sched_init(irq_handler_t vector); | extern void hp300_sched_init(irq_handler_t vector); | |
2 | extern u32 hp300_gettimeoffset(void); | ||
diff --git a/arch/m68k/include/asm/mvme147hw.h b/arch/m68k/include/asm/mvme147hw.h index 9c7ff67c5ffd..257b29184af9 100644 --- a/arch/m68k/include/asm/mvme147hw.h +++ b/arch/m68k/include/asm/mvme147hw.h | |||
@@ -66,7 +66,7 @@ struct pcc_regs { | |||
66 | #define PCC_INT_ENAB 0x08 | 66 | #define PCC_INT_ENAB 0x08 |
67 | 67 | ||
68 | #define PCC_TIMER_INT_CLR 0x80 | 68 | #define PCC_TIMER_INT_CLR 0x80 |
69 | #define PCC_TIMER_PRELOAD 63936l | 69 | #define PCC_TIMER_CLR_OVF 0x04 |
70 | 70 | ||
71 | #define PCC_LEVEL_ABORT 0x07 | 71 | #define PCC_LEVEL_ABORT 0x07 |
72 | #define PCC_LEVEL_SERIAL 0x04 | 72 | #define PCC_LEVEL_SERIAL 0x04 |
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c index cd9317d53276..11be08f4f750 100644 --- a/arch/m68k/mac/config.c +++ b/arch/m68k/mac/config.c | |||
@@ -54,8 +54,6 @@ struct mac_booter_data mac_bi_data; | |||
54 | /* The phys. video addr. - might be bogus on some machines */ | 54 | /* The phys. video addr. - might be bogus on some machines */ |
55 | static unsigned long mac_orig_videoaddr; | 55 | static unsigned long mac_orig_videoaddr; |
56 | 56 | ||
57 | /* Mac specific timer functions */ | ||
58 | extern u32 mac_gettimeoffset(void); | ||
59 | extern int mac_hwclk(int, struct rtc_time *); | 57 | extern int mac_hwclk(int, struct rtc_time *); |
60 | extern void iop_preinit(void); | 58 | extern void iop_preinit(void); |
61 | extern void iop_init(void); | 59 | extern void iop_init(void); |
@@ -155,7 +153,6 @@ void __init config_mac(void) | |||
155 | mach_sched_init = mac_sched_init; | 153 | mach_sched_init = mac_sched_init; |
156 | mach_init_IRQ = mac_init_IRQ; | 154 | mach_init_IRQ = mac_init_IRQ; |
157 | mach_get_model = mac_get_model; | 155 | mach_get_model = mac_get_model; |
158 | arch_gettimeoffset = mac_gettimeoffset; | ||
159 | mach_hwclk = mac_hwclk; | 156 | mach_hwclk = mac_hwclk; |
160 | mach_reset = mac_reset; | 157 | mach_reset = mac_reset; |
161 | mach_halt = mac_poweroff; | 158 | mach_halt = mac_poweroff; |
diff --git a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c index 0b0289459173..3c2cfcb74982 100644 --- a/arch/m68k/mac/via.c +++ b/arch/m68k/mac/via.c | |||
@@ -23,6 +23,7 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/clocksource.h> | ||
26 | #include <linux/types.h> | 27 | #include <linux/types.h> |
27 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
28 | #include <linux/mm.h> | 29 | #include <linux/mm.h> |
@@ -55,16 +56,6 @@ static __u8 rbv_clear; | |||
55 | static int gIER,gIFR,gBufA,gBufB; | 56 | static int gIER,gIFR,gBufA,gBufB; |
56 | 57 | ||
57 | /* | 58 | /* |
58 | * Timer defs. | ||
59 | */ | ||
60 | |||
61 | #define TICK_SIZE 10000 | ||
62 | #define MAC_CLOCK_TICK (783300/HZ) /* ticks per HZ */ | ||
63 | #define MAC_CLOCK_LOW (MAC_CLOCK_TICK&0xFF) | ||
64 | #define MAC_CLOCK_HIGH (MAC_CLOCK_TICK>>8) | ||
65 | |||
66 | |||
67 | /* | ||
68 | * On Macs with a genuine VIA chip there is no way to mask an individual slot | 59 | * On Macs with a genuine VIA chip there is no way to mask an individual slot |
69 | * interrupt. This limitation also seems to apply to VIA clone logic cores in | 60 | * interrupt. This limitation also seems to apply to VIA clone logic cores in |
70 | * Quadra-like ASICs. (RBV and OSS machines don't have this limitation.) | 61 | * Quadra-like ASICs. (RBV and OSS machines don't have this limitation.) |
@@ -272,22 +263,6 @@ void __init via_init(void) | |||
272 | } | 263 | } |
273 | 264 | ||
274 | /* | 265 | /* |
275 | * Start the 100 Hz clock | ||
276 | */ | ||
277 | |||
278 | void __init via_init_clock(irq_handler_t func) | ||
279 | { | ||
280 | via1[vACR] |= 0x40; | ||
281 | via1[vT1LL] = MAC_CLOCK_LOW; | ||
282 | via1[vT1LH] = MAC_CLOCK_HIGH; | ||
283 | via1[vT1CL] = MAC_CLOCK_LOW; | ||
284 | via1[vT1CH] = MAC_CLOCK_HIGH; | ||
285 | |||
286 | if (request_irq(IRQ_MAC_TIMER_1, func, 0, "timer", func)) | ||
287 | pr_err("Couldn't register %s interrupt\n", "timer"); | ||
288 | } | ||
289 | |||
290 | /* | ||
291 | * Debugging dump, used in various places to see what's going on. | 266 | * Debugging dump, used in various places to see what's going on. |
292 | */ | 267 | */ |
293 | 268 | ||
@@ -315,29 +290,6 @@ void via_debug_dump(void) | |||
315 | } | 290 | } |
316 | 291 | ||
317 | /* | 292 | /* |
318 | * This is always executed with interrupts disabled. | ||
319 | * | ||
320 | * TBI: get time offset between scheduling timer ticks | ||
321 | */ | ||
322 | |||
323 | u32 mac_gettimeoffset(void) | ||
324 | { | ||
325 | unsigned long ticks, offset = 0; | ||
326 | |||
327 | /* read VIA1 timer 2 current value */ | ||
328 | ticks = via1[vT1CL] | (via1[vT1CH] << 8); | ||
329 | /* The probability of underflow is less than 2% */ | ||
330 | if (ticks > MAC_CLOCK_TICK - MAC_CLOCK_TICK / 50) | ||
331 | /* Check for pending timer interrupt in VIA1 IFR */ | ||
332 | if (via1[vIFR] & 0x40) offset = TICK_SIZE; | ||
333 | |||
334 | ticks = MAC_CLOCK_TICK - ticks; | ||
335 | ticks = ticks * 10000L / MAC_CLOCK_TICK; | ||
336 | |||
337 | return (ticks + offset) * 1000; | ||
338 | } | ||
339 | |||
340 | /* | ||
341 | * Flush the L2 cache on Macs that have it by flipping | 293 | * Flush the L2 cache on Macs that have it by flipping |
342 | * the system into 24-bit mode for an instant. | 294 | * the system into 24-bit mode for an instant. |
343 | */ | 295 | */ |
@@ -440,6 +392,8 @@ void via_nubus_irq_shutdown(int irq) | |||
440 | * via6522.c :-), disable/pending masks added. | 392 | * via6522.c :-), disable/pending masks added. |
441 | */ | 393 | */ |
442 | 394 | ||
395 | #define VIA_TIMER_1_INT BIT(6) | ||
396 | |||
443 | void via1_irq(struct irq_desc *desc) | 397 | void via1_irq(struct irq_desc *desc) |
444 | { | 398 | { |
445 | int irq_num; | 399 | int irq_num; |
@@ -449,6 +403,21 @@ void via1_irq(struct irq_desc *desc) | |||
449 | if (!events) | 403 | if (!events) |
450 | return; | 404 | return; |
451 | 405 | ||
406 | irq_num = IRQ_MAC_TIMER_1; | ||
407 | irq_bit = VIA_TIMER_1_INT; | ||
408 | if (events & irq_bit) { | ||
409 | unsigned long flags; | ||
410 | |||
411 | local_irq_save(flags); | ||
412 | via1[vIFR] = irq_bit; | ||
413 | generic_handle_irq(irq_num); | ||
414 | local_irq_restore(flags); | ||
415 | |||
416 | events &= ~irq_bit; | ||
417 | if (!events) | ||
418 | return; | ||
419 | } | ||
420 | |||
452 | irq_num = VIA1_SOURCE_BASE; | 421 | irq_num = VIA1_SOURCE_BASE; |
453 | irq_bit = 1; | 422 | irq_bit = 1; |
454 | do { | 423 | do { |
@@ -605,3 +574,82 @@ int via2_scsi_drq_pending(void) | |||
605 | return via2[gIFR] & (1 << IRQ_IDX(IRQ_MAC_SCSIDRQ)); | 574 | return via2[gIFR] & (1 << IRQ_IDX(IRQ_MAC_SCSIDRQ)); |
606 | } | 575 | } |
607 | EXPORT_SYMBOL(via2_scsi_drq_pending); | 576 | EXPORT_SYMBOL(via2_scsi_drq_pending); |
577 | |||
578 | /* timer and clock source */ | ||
579 | |||
580 | #define VIA_CLOCK_FREQ 783360 /* VIA "phase 2" clock in Hz */ | ||
581 | #define VIA_TIMER_CYCLES (VIA_CLOCK_FREQ / HZ) /* clock cycles per jiffy */ | ||
582 | |||
583 | #define VIA_TC (VIA_TIMER_CYCLES - 2) /* including 0 and -1 */ | ||
584 | #define VIA_TC_LOW (VIA_TC & 0xFF) | ||
585 | #define VIA_TC_HIGH (VIA_TC >> 8) | ||
586 | |||
587 | static u64 mac_read_clk(struct clocksource *cs); | ||
588 | |||
589 | static struct clocksource mac_clk = { | ||
590 | .name = "via1", | ||
591 | .rating = 250, | ||
592 | .read = mac_read_clk, | ||
593 | .mask = CLOCKSOURCE_MASK(32), | ||
594 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
595 | }; | ||
596 | |||
597 | static u32 clk_total, clk_offset; | ||
598 | |||
599 | static irqreturn_t via_timer_handler(int irq, void *dev_id) | ||
600 | { | ||
601 | irq_handler_t timer_routine = dev_id; | ||
602 | |||
603 | clk_total += VIA_TIMER_CYCLES; | ||
604 | clk_offset = 0; | ||
605 | timer_routine(0, NULL); | ||
606 | |||
607 | return IRQ_HANDLED; | ||
608 | } | ||
609 | |||
610 | void __init via_init_clock(irq_handler_t timer_routine) | ||
611 | { | ||
612 | if (request_irq(IRQ_MAC_TIMER_1, via_timer_handler, IRQF_TIMER, "timer", | ||
613 | timer_routine)) { | ||
614 | pr_err("Couldn't register %s interrupt\n", "timer"); | ||
615 | return; | ||
616 | } | ||
617 | |||
618 | via1[vT1LL] = VIA_TC_LOW; | ||
619 | via1[vT1LH] = VIA_TC_HIGH; | ||
620 | via1[vT1CL] = VIA_TC_LOW; | ||
621 | via1[vT1CH] = VIA_TC_HIGH; | ||
622 | via1[vACR] |= 0x40; | ||
623 | |||
624 | clocksource_register_hz(&mac_clk, VIA_CLOCK_FREQ); | ||
625 | } | ||
626 | |||
627 | static u64 mac_read_clk(struct clocksource *cs) | ||
628 | { | ||
629 | unsigned long flags; | ||
630 | u8 count_high; | ||
631 | u16 count; | ||
632 | u32 ticks; | ||
633 | |||
634 | /* | ||
635 | * Timer counter wrap-around is detected with the timer interrupt flag | ||
636 | * but reading the counter low byte (vT1CL) would reset the flag. | ||
637 | * Also, accessing both counter registers is essentially a data race. | ||
638 | * These problems are avoided by ignoring the low byte. Clock accuracy | ||
639 | * is 256 times worse (error can reach 0.327 ms) but CPU overhead is | ||
640 | * reduced by avoiding slow VIA register accesses. | ||
641 | */ | ||
642 | |||
643 | local_irq_save(flags); | ||
644 | count_high = via1[vT1CH]; | ||
645 | if (count_high == 0xFF) | ||
646 | count_high = 0; | ||
647 | if (count_high > 0 && (via1[vIFR] & VIA_TIMER_1_INT)) | ||
648 | clk_offset = VIA_TIMER_CYCLES; | ||
649 | count = count_high << 8; | ||
650 | ticks = VIA_TIMER_CYCLES - count; | ||
651 | ticks += clk_offset + clk_total; | ||
652 | local_irq_restore(flags); | ||
653 | |||
654 | return ticks; | ||
655 | } | ||
diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c index adea549d240e..545a1fe0e119 100644 --- a/arch/m68k/mvme147/config.c +++ b/arch/m68k/mvme147/config.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
20 | #include <linux/clocksource.h> | ||
20 | #include <linux/console.h> | 21 | #include <linux/console.h> |
21 | #include <linux/linkage.h> | 22 | #include <linux/linkage.h> |
22 | #include <linux/init.h> | 23 | #include <linux/init.h> |
@@ -38,18 +39,12 @@ | |||
38 | 39 | ||
39 | static void mvme147_get_model(char *model); | 40 | static void mvme147_get_model(char *model); |
40 | extern void mvme147_sched_init(irq_handler_t handler); | 41 | extern void mvme147_sched_init(irq_handler_t handler); |
41 | extern u32 mvme147_gettimeoffset(void); | ||
42 | extern int mvme147_hwclk (int, struct rtc_time *); | 42 | extern int mvme147_hwclk (int, struct rtc_time *); |
43 | extern void mvme147_reset (void); | 43 | extern void mvme147_reset (void); |
44 | 44 | ||
45 | 45 | ||
46 | static int bcd2int (unsigned char b); | 46 | static int bcd2int (unsigned char b); |
47 | 47 | ||
48 | /* Save tick handler routine pointer, will point to xtime_update() in | ||
49 | * kernel/time/timekeeping.c, called via mvme147_process_int() */ | ||
50 | |||
51 | irq_handler_t tick_handler; | ||
52 | |||
53 | 48 | ||
54 | int __init mvme147_parse_bootinfo(const struct bi_record *bi) | 49 | int __init mvme147_parse_bootinfo(const struct bi_record *bi) |
55 | { | 50 | { |
@@ -89,7 +84,6 @@ void __init config_mvme147(void) | |||
89 | mach_max_dma_address = 0x01000000; | 84 | mach_max_dma_address = 0x01000000; |
90 | mach_sched_init = mvme147_sched_init; | 85 | mach_sched_init = mvme147_sched_init; |
91 | mach_init_IRQ = mvme147_init_IRQ; | 86 | mach_init_IRQ = mvme147_init_IRQ; |
92 | arch_gettimeoffset = mvme147_gettimeoffset; | ||
93 | mach_hwclk = mvme147_hwclk; | 87 | mach_hwclk = mvme147_hwclk; |
94 | mach_reset = mvme147_reset; | 88 | mach_reset = mvme147_reset; |
95 | mach_get_model = mvme147_get_model; | 89 | mach_get_model = mvme147_get_model; |
@@ -99,45 +93,76 @@ void __init config_mvme147(void) | |||
99 | vme_brdtype = VME_TYPE_MVME147; | 93 | vme_brdtype = VME_TYPE_MVME147; |
100 | } | 94 | } |
101 | 95 | ||
96 | static u64 mvme147_read_clk(struct clocksource *cs); | ||
97 | |||
98 | static struct clocksource mvme147_clk = { | ||
99 | .name = "pcc", | ||
100 | .rating = 250, | ||
101 | .read = mvme147_read_clk, | ||
102 | .mask = CLOCKSOURCE_MASK(32), | ||
103 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
104 | }; | ||
105 | |||
106 | static u32 clk_total; | ||
107 | |||
108 | #define PCC_TIMER_CLOCK_FREQ 160000 | ||
109 | #define PCC_TIMER_CYCLES (PCC_TIMER_CLOCK_FREQ / HZ) | ||
110 | #define PCC_TIMER_PRELOAD (0x10000 - PCC_TIMER_CYCLES) | ||
102 | 111 | ||
103 | /* Using pcc tick timer 1 */ | 112 | /* Using pcc tick timer 1 */ |
104 | 113 | ||
105 | static irqreturn_t mvme147_timer_int (int irq, void *dev_id) | 114 | static irqreturn_t mvme147_timer_int (int irq, void *dev_id) |
106 | { | 115 | { |
116 | irq_handler_t timer_routine = dev_id; | ||
117 | unsigned long flags; | ||
118 | |||
119 | local_irq_save(flags); | ||
107 | m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; | 120 | m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; |
108 | m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; | 121 | m147_pcc->t1_cntrl = PCC_TIMER_CLR_OVF; |
109 | return tick_handler(irq, dev_id); | 122 | clk_total += PCC_TIMER_CYCLES; |
123 | timer_routine(0, NULL); | ||
124 | local_irq_restore(flags); | ||
125 | |||
126 | return IRQ_HANDLED; | ||
110 | } | 127 | } |
111 | 128 | ||
112 | 129 | ||
113 | void mvme147_sched_init (irq_handler_t timer_routine) | 130 | void mvme147_sched_init (irq_handler_t timer_routine) |
114 | { | 131 | { |
115 | tick_handler = timer_routine; | 132 | if (request_irq(PCC_IRQ_TIMER1, mvme147_timer_int, IRQF_TIMER, |
116 | if (request_irq(PCC_IRQ_TIMER1, mvme147_timer_int, 0, "timer 1", NULL)) | 133 | "timer 1", timer_routine)) |
117 | pr_err("Couldn't register timer interrupt\n"); | 134 | pr_err("Couldn't register timer interrupt\n"); |
118 | 135 | ||
119 | /* Init the clock with a value */ | 136 | /* Init the clock with a value */ |
120 | /* our clock goes off every 6.25us */ | 137 | /* The clock counter increments until 0xFFFF then reloads */ |
121 | m147_pcc->t1_preload = PCC_TIMER_PRELOAD; | 138 | m147_pcc->t1_preload = PCC_TIMER_PRELOAD; |
122 | m147_pcc->t1_cntrl = 0x0; /* clear timer */ | 139 | m147_pcc->t1_cntrl = 0x0; /* clear timer */ |
123 | m147_pcc->t1_cntrl = 0x3; /* start timer */ | 140 | m147_pcc->t1_cntrl = 0x3; /* start timer */ |
124 | m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; /* clear pending ints */ | 141 | m147_pcc->t1_int_cntrl = PCC_TIMER_INT_CLR; /* clear pending ints */ |
125 | m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; | 142 | m147_pcc->t1_int_cntrl = PCC_INT_ENAB|PCC_LEVEL_TIMER1; |
143 | |||
144 | clocksource_register_hz(&mvme147_clk, PCC_TIMER_CLOCK_FREQ); | ||
126 | } | 145 | } |
127 | 146 | ||
128 | /* This is always executed with interrupts disabled. */ | 147 | static u64 mvme147_read_clk(struct clocksource *cs) |
129 | /* XXX There are race hazards in this code XXX */ | ||
130 | u32 mvme147_gettimeoffset(void) | ||
131 | { | 148 | { |
132 | volatile unsigned short *cp = (volatile unsigned short *)0xfffe1012; | 149 | unsigned long flags; |
133 | unsigned short n; | 150 | u8 overflow, tmp; |
134 | 151 | u16 count; | |
135 | n = *cp; | 152 | u32 ticks; |
136 | while (n != *cp) | 153 | |
137 | n = *cp; | 154 | local_irq_save(flags); |
138 | 155 | tmp = m147_pcc->t1_cntrl >> 4; | |
139 | n -= PCC_TIMER_PRELOAD; | 156 | count = m147_pcc->t1_count; |
140 | return ((unsigned long)n * 25 / 4) * 1000; | 157 | overflow = m147_pcc->t1_cntrl >> 4; |
158 | if (overflow != tmp) | ||
159 | count = m147_pcc->t1_count; | ||
160 | count -= PCC_TIMER_PRELOAD; | ||
161 | ticks = count + overflow * PCC_TIMER_CYCLES; | ||
162 | ticks += clk_total; | ||
163 | local_irq_restore(flags); | ||
164 | |||
165 | return ticks; | ||
141 | } | 166 | } |
142 | 167 | ||
143 | static int bcd2int (unsigned char b) | 168 | static int bcd2int (unsigned char b) |
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c index 6ee36a5b528d..9bc2da69f80c 100644 --- a/arch/m68k/mvme16x/config.c +++ b/arch/m68k/mvme16x/config.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/seq_file.h> | 20 | #include <linux/seq_file.h> |
21 | #include <linux/tty.h> | 21 | #include <linux/tty.h> |
22 | #include <linux/clocksource.h> | ||
22 | #include <linux/console.h> | 23 | #include <linux/console.h> |
23 | #include <linux/linkage.h> | 24 | #include <linux/linkage.h> |
24 | #include <linux/init.h> | 25 | #include <linux/init.h> |
@@ -44,17 +45,11 @@ static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE; | |||
44 | 45 | ||
45 | static void mvme16x_get_model(char *model); | 46 | static void mvme16x_get_model(char *model); |
46 | extern void mvme16x_sched_init(irq_handler_t handler); | 47 | extern void mvme16x_sched_init(irq_handler_t handler); |
47 | extern u32 mvme16x_gettimeoffset(void); | ||
48 | extern int mvme16x_hwclk (int, struct rtc_time *); | 48 | extern int mvme16x_hwclk (int, struct rtc_time *); |
49 | extern void mvme16x_reset (void); | 49 | extern void mvme16x_reset (void); |
50 | 50 | ||
51 | int bcd2int (unsigned char b); | 51 | int bcd2int (unsigned char b); |
52 | 52 | ||
53 | /* Save tick handler routine pointer, will point to xtime_update() in | ||
54 | * kernel/time/timekeeping.c, called via mvme16x_process_int() */ | ||
55 | |||
56 | static irq_handler_t tick_handler; | ||
57 | |||
58 | 53 | ||
59 | unsigned short mvme16x_config; | 54 | unsigned short mvme16x_config; |
60 | EXPORT_SYMBOL(mvme16x_config); | 55 | EXPORT_SYMBOL(mvme16x_config); |
@@ -120,11 +115,11 @@ static void __init mvme16x_init_IRQ (void) | |||
120 | m68k_setup_user_interrupt(VEC_USER, 192); | 115 | m68k_setup_user_interrupt(VEC_USER, 192); |
121 | } | 116 | } |
122 | 117 | ||
123 | #define pcc2chip ((volatile u_char *)0xfff42000) | 118 | #define PCC2CHIP (0xfff42000) |
124 | #define PccSCCMICR 0x1d | 119 | #define PCCSCCMICR (PCC2CHIP + 0x1d) |
125 | #define PccSCCTICR 0x1e | 120 | #define PCCSCCTICR (PCC2CHIP + 0x1e) |
126 | #define PccSCCRICR 0x1f | 121 | #define PCCSCCRICR (PCC2CHIP + 0x1f) |
127 | #define PccTPIACKR 0x25 | 122 | #define PCCTPIACKR (PCC2CHIP + 0x25) |
128 | 123 | ||
129 | #ifdef CONFIG_EARLY_PRINTK | 124 | #ifdef CONFIG_EARLY_PRINTK |
130 | 125 | ||
@@ -232,10 +227,10 @@ void mvme16x_cons_write(struct console *co, const char *str, unsigned count) | |||
232 | base_addr[CyIER] = CyTxMpty; | 227 | base_addr[CyIER] = CyTxMpty; |
233 | 228 | ||
234 | while (1) { | 229 | while (1) { |
235 | if (pcc2chip[PccSCCTICR] & 0x20) | 230 | if (in_8(PCCSCCTICR) & 0x20) |
236 | { | 231 | { |
237 | /* We have a Tx int. Acknowledge it */ | 232 | /* We have a Tx int. Acknowledge it */ |
238 | sink = pcc2chip[PccTPIACKR]; | 233 | sink = in_8(PCCTPIACKR); |
239 | if ((base_addr[CyLICR] >> 2) == port) { | 234 | if ((base_addr[CyLICR] >> 2) == port) { |
240 | if (i == count) { | 235 | if (i == count) { |
241 | /* Last char of string is now output */ | 236 | /* Last char of string is now output */ |
@@ -277,7 +272,6 @@ void __init config_mvme16x(void) | |||
277 | mach_max_dma_address = 0xffffffff; | 272 | mach_max_dma_address = 0xffffffff; |
278 | mach_sched_init = mvme16x_sched_init; | 273 | mach_sched_init = mvme16x_sched_init; |
279 | mach_init_IRQ = mvme16x_init_IRQ; | 274 | mach_init_IRQ = mvme16x_init_IRQ; |
280 | arch_gettimeoffset = mvme16x_gettimeoffset; | ||
281 | mach_hwclk = mvme16x_hwclk; | 275 | mach_hwclk = mvme16x_hwclk; |
282 | mach_reset = mvme16x_reset; | 276 | mach_reset = mvme16x_reset; |
283 | mach_get_model = mvme16x_get_model; | 277 | mach_get_model = mvme16x_get_model; |
@@ -350,10 +344,46 @@ static irqreturn_t mvme16x_abort_int (int irq, void *dev_id) | |||
350 | return IRQ_HANDLED; | 344 | return IRQ_HANDLED; |
351 | } | 345 | } |
352 | 346 | ||
347 | static u64 mvme16x_read_clk(struct clocksource *cs); | ||
348 | |||
349 | static struct clocksource mvme16x_clk = { | ||
350 | .name = "pcc", | ||
351 | .rating = 250, | ||
352 | .read = mvme16x_read_clk, | ||
353 | .mask = CLOCKSOURCE_MASK(32), | ||
354 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
355 | }; | ||
356 | |||
357 | static u32 clk_total; | ||
358 | |||
359 | #define PCC_TIMER_CLOCK_FREQ 1000000 | ||
360 | #define PCC_TIMER_CYCLES (PCC_TIMER_CLOCK_FREQ / HZ) | ||
361 | |||
362 | #define PCCTCMP1 (PCC2CHIP + 0x04) | ||
363 | #define PCCTCNT1 (PCC2CHIP + 0x08) | ||
364 | #define PCCTOVR1 (PCC2CHIP + 0x17) | ||
365 | #define PCCTIC1 (PCC2CHIP + 0x1b) | ||
366 | |||
367 | #define PCCTOVR1_TIC_EN 0x01 | ||
368 | #define PCCTOVR1_COC_EN 0x02 | ||
369 | #define PCCTOVR1_OVR_CLR 0x04 | ||
370 | |||
371 | #define PCCTIC1_INT_CLR 0x08 | ||
372 | #define PCCTIC1_INT_EN 0x10 | ||
373 | |||
353 | static irqreturn_t mvme16x_timer_int (int irq, void *dev_id) | 374 | static irqreturn_t mvme16x_timer_int (int irq, void *dev_id) |
354 | { | 375 | { |
355 | *(volatile unsigned char *)0xfff4201b |= 8; | 376 | irq_handler_t timer_routine = dev_id; |
356 | return tick_handler(irq, dev_id); | 377 | unsigned long flags; |
378 | |||
379 | local_irq_save(flags); | ||
380 | out_8(PCCTIC1, in_8(PCCTIC1) | PCCTIC1_INT_CLR); | ||
381 | out_8(PCCTOVR1, PCCTOVR1_OVR_CLR); | ||
382 | clk_total += PCC_TIMER_CYCLES; | ||
383 | timer_routine(0, NULL); | ||
384 | local_irq_restore(flags); | ||
385 | |||
386 | return IRQ_HANDLED; | ||
357 | } | 387 | } |
358 | 388 | ||
359 | void mvme16x_sched_init (irq_handler_t timer_routine) | 389 | void mvme16x_sched_init (irq_handler_t timer_routine) |
@@ -361,16 +391,17 @@ void mvme16x_sched_init (irq_handler_t timer_routine) | |||
361 | uint16_t brdno = be16_to_cpu(mvme_bdid.brdno); | 391 | uint16_t brdno = be16_to_cpu(mvme_bdid.brdno); |
362 | int irq; | 392 | int irq; |
363 | 393 | ||
364 | tick_handler = timer_routine; | ||
365 | /* Using PCCchip2 or MC2 chip tick timer 1 */ | 394 | /* Using PCCchip2 or MC2 chip tick timer 1 */ |
366 | *(volatile unsigned long *)0xfff42008 = 0; | 395 | out_be32(PCCTCNT1, 0); |
367 | *(volatile unsigned long *)0xfff42004 = 10000; /* 10ms */ | 396 | out_be32(PCCTCMP1, PCC_TIMER_CYCLES); |
368 | *(volatile unsigned char *)0xfff42017 |= 3; | 397 | out_8(PCCTOVR1, in_8(PCCTOVR1) | PCCTOVR1_TIC_EN | PCCTOVR1_COC_EN); |
369 | *(volatile unsigned char *)0xfff4201b = 0x16; | 398 | out_8(PCCTIC1, PCCTIC1_INT_EN | 6); |
370 | if (request_irq(MVME16x_IRQ_TIMER, mvme16x_timer_int, 0, | 399 | if (request_irq(MVME16x_IRQ_TIMER, mvme16x_timer_int, IRQF_TIMER, "timer", |
371 | "timer", mvme16x_timer_int)) | 400 | timer_routine)) |
372 | panic ("Couldn't register timer int"); | 401 | panic ("Couldn't register timer int"); |
373 | 402 | ||
403 | clocksource_register_hz(&mvme16x_clk, PCC_TIMER_CLOCK_FREQ); | ||
404 | |||
374 | if (brdno == 0x0162 || brdno == 0x172) | 405 | if (brdno == 0x0162 || brdno == 0x172) |
375 | irq = MVME162_IRQ_ABORT; | 406 | irq = MVME162_IRQ_ABORT; |
376 | else | 407 | else |
@@ -380,11 +411,23 @@ void mvme16x_sched_init (irq_handler_t timer_routine) | |||
380 | panic ("Couldn't register abort int"); | 411 | panic ("Couldn't register abort int"); |
381 | } | 412 | } |
382 | 413 | ||
383 | 414 | static u64 mvme16x_read_clk(struct clocksource *cs) | |
384 | /* This is always executed with interrupts disabled. */ | ||
385 | u32 mvme16x_gettimeoffset(void) | ||
386 | { | 415 | { |
387 | return (*(volatile u32 *)0xfff42008) * 1000; | 416 | unsigned long flags; |
417 | u8 overflow, tmp; | ||
418 | u32 ticks; | ||
419 | |||
420 | local_irq_save(flags); | ||
421 | tmp = in_8(PCCTOVR1) >> 4; | ||
422 | ticks = in_be32(PCCTCNT1); | ||
423 | overflow = in_8(PCCTOVR1) >> 4; | ||
424 | if (overflow != tmp) | ||
425 | ticks = in_be32(PCCTCNT1); | ||
426 | ticks += overflow * PCC_TIMER_CYCLES; | ||
427 | ticks += clk_total; | ||
428 | local_irq_restore(flags); | ||
429 | |||
430 | return ticks; | ||
388 | } | 431 | } |
389 | 432 | ||
390 | int bcd2int (unsigned char b) | 433 | int bcd2int (unsigned char b) |
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c index 96810d91da2b..e63eb5f06999 100644 --- a/arch/m68k/q40/config.c +++ b/arch/m68k/q40/config.c | |||
@@ -40,7 +40,6 @@ extern void q40_init_IRQ(void); | |||
40 | static void q40_get_model(char *model); | 40 | static void q40_get_model(char *model); |
41 | extern void q40_sched_init(irq_handler_t handler); | 41 | extern void q40_sched_init(irq_handler_t handler); |
42 | 42 | ||
43 | static u32 q40_gettimeoffset(void); | ||
44 | static int q40_hwclk(int, struct rtc_time *); | 43 | static int q40_hwclk(int, struct rtc_time *); |
45 | static unsigned int q40_get_ss(void); | 44 | static unsigned int q40_get_ss(void); |
46 | static int q40_get_rtc_pll(struct rtc_pll_info *pll); | 45 | static int q40_get_rtc_pll(struct rtc_pll_info *pll); |
@@ -169,7 +168,6 @@ void __init config_q40(void) | |||
169 | mach_sched_init = q40_sched_init; | 168 | mach_sched_init = q40_sched_init; |
170 | 169 | ||
171 | mach_init_IRQ = q40_init_IRQ; | 170 | mach_init_IRQ = q40_init_IRQ; |
172 | arch_gettimeoffset = q40_gettimeoffset; | ||
173 | mach_hwclk = q40_hwclk; | 171 | mach_hwclk = q40_hwclk; |
174 | mach_get_ss = q40_get_ss; | 172 | mach_get_ss = q40_get_ss; |
175 | mach_get_rtc_pll = q40_get_rtc_pll; | 173 | mach_get_rtc_pll = q40_get_rtc_pll; |
@@ -201,13 +199,6 @@ int __init q40_parse_bootinfo(const struct bi_record *rec) | |||
201 | return 1; | 199 | return 1; |
202 | } | 200 | } |
203 | 201 | ||
204 | |||
205 | static u32 q40_gettimeoffset(void) | ||
206 | { | ||
207 | return 5000 * (ql_ticks != 0) * 1000; | ||
208 | } | ||
209 | |||
210 | |||
211 | /* | 202 | /* |
212 | * Looks like op is non-zero for setting the clock, and zero for | 203 | * Looks like op is non-zero for setting the clock, and zero for |
213 | * reading the clock. | 204 | * reading the clock. |
diff --git a/arch/m68k/q40/q40ints.c b/arch/m68k/q40/q40ints.c index 3e7603202977..1c696906c159 100644 --- a/arch/m68k/q40/q40ints.c +++ b/arch/m68k/q40/q40ints.c | |||
@@ -127,10 +127,10 @@ void q40_mksound(unsigned int hz, unsigned int ticks) | |||
127 | sound_ticks = ticks << 1; | 127 | sound_ticks = ticks << 1; |
128 | } | 128 | } |
129 | 129 | ||
130 | static irq_handler_t q40_timer_routine; | 130 | static irqreturn_t q40_timer_int(int irq, void *dev_id) |
131 | |||
132 | static irqreturn_t q40_timer_int (int irq, void * dev) | ||
133 | { | 131 | { |
132 | irq_handler_t timer_routine = dev_id; | ||
133 | |||
134 | ql_ticks = ql_ticks ? 0 : 1; | 134 | ql_ticks = ql_ticks ? 0 : 1; |
135 | if (sound_ticks) { | 135 | if (sound_ticks) { |
136 | unsigned char sval=(sound_ticks & 1) ? 128-SVOL : 128+SVOL; | 136 | unsigned char sval=(sound_ticks & 1) ? 128-SVOL : 128+SVOL; |
@@ -139,8 +139,13 @@ static irqreturn_t q40_timer_int (int irq, void * dev) | |||
139 | *DAC_RIGHT=sval; | 139 | *DAC_RIGHT=sval; |
140 | } | 140 | } |
141 | 141 | ||
142 | if (!ql_ticks) | 142 | if (!ql_ticks) { |
143 | q40_timer_routine(irq, dev); | 143 | unsigned long flags; |
144 | |||
145 | local_irq_save(flags); | ||
146 | timer_routine(0, NULL); | ||
147 | local_irq_restore(flags); | ||
148 | } | ||
144 | return IRQ_HANDLED; | 149 | return IRQ_HANDLED; |
145 | } | 150 | } |
146 | 151 | ||
@@ -148,11 +153,9 @@ void q40_sched_init (irq_handler_t timer_routine) | |||
148 | { | 153 | { |
149 | int timer_irq; | 154 | int timer_irq; |
150 | 155 | ||
151 | q40_timer_routine = timer_routine; | ||
152 | timer_irq = Q40_IRQ_FRAME; | 156 | timer_irq = Q40_IRQ_FRAME; |
153 | 157 | ||
154 | if (request_irq(timer_irq, q40_timer_int, 0, | 158 | if (request_irq(timer_irq, q40_timer_int, 0, "timer", timer_routine)) |
155 | "timer", q40_timer_int)) | ||
156 | panic("Couldn't register timer int"); | 159 | panic("Couldn't register timer int"); |
157 | 160 | ||
158 | master_outb(-1, FRAME_CLEAR_REG); | 161 | master_outb(-1, FRAME_CLEAR_REG); |
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c index 542c4404861c..229ea37dfe1b 100644 --- a/arch/m68k/sun3/config.c +++ b/arch/m68k/sun3/config.c | |||
@@ -37,7 +37,6 @@ | |||
37 | 37 | ||
38 | char sun3_reserved_pmeg[SUN3_PMEGS_NUM]; | 38 | char sun3_reserved_pmeg[SUN3_PMEGS_NUM]; |
39 | 39 | ||
40 | extern u32 sun3_gettimeoffset(void); | ||
41 | static void sun3_sched_init(irq_handler_t handler); | 40 | static void sun3_sched_init(irq_handler_t handler); |
42 | extern void sun3_get_model (char* model); | 41 | extern void sun3_get_model (char* model); |
43 | extern int sun3_hwclk(int set, struct rtc_time *t); | 42 | extern int sun3_hwclk(int set, struct rtc_time *t); |
@@ -138,7 +137,6 @@ void __init config_sun3(void) | |||
138 | mach_sched_init = sun3_sched_init; | 137 | mach_sched_init = sun3_sched_init; |
139 | mach_init_IRQ = sun3_init_IRQ; | 138 | mach_init_IRQ = sun3_init_IRQ; |
140 | mach_reset = sun3_reboot; | 139 | mach_reset = sun3_reboot; |
141 | arch_gettimeoffset = sun3_gettimeoffset; | ||
142 | mach_get_model = sun3_get_model; | 140 | mach_get_model = sun3_get_model; |
143 | mach_hwclk = sun3_hwclk; | 141 | mach_hwclk = sun3_hwclk; |
144 | mach_halt = sun3_halt; | 142 | mach_halt = sun3_halt; |
diff --git a/arch/m68k/sun3/intersil.c b/arch/m68k/sun3/intersil.c index d911070af02a..8fc74864de81 100644 --- a/arch/m68k/sun3/intersil.c +++ b/arch/m68k/sun3/intersil.c | |||
@@ -22,13 +22,6 @@ | |||
22 | #define STOP_VAL (INTERSIL_STOP | INTERSIL_INT_ENABLE | INTERSIL_24H_MODE) | 22 | #define STOP_VAL (INTERSIL_STOP | INTERSIL_INT_ENABLE | INTERSIL_24H_MODE) |
23 | #define START_VAL (INTERSIL_RUN | INTERSIL_INT_ENABLE | INTERSIL_24H_MODE) | 23 | #define START_VAL (INTERSIL_RUN | INTERSIL_INT_ENABLE | INTERSIL_24H_MODE) |
24 | 24 | ||
25 | /* does this need to be implemented? */ | ||
26 | u32 sun3_gettimeoffset(void) | ||
27 | { | ||
28 | return 1000; | ||
29 | } | ||
30 | |||
31 | |||
32 | /* get/set hwclock */ | 25 | /* get/set hwclock */ |
33 | 26 | ||
34 | int sun3_hwclk(int set, struct rtc_time *t) | 27 | int sun3_hwclk(int set, struct rtc_time *t) |
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c index 6bbca30c9188..a5824abb4a39 100644 --- a/arch/m68k/sun3/sun3ints.c +++ b/arch/m68k/sun3/sun3ints.c | |||
@@ -61,8 +61,10 @@ static irqreturn_t sun3_int7(int irq, void *dev_id) | |||
61 | 61 | ||
62 | static irqreturn_t sun3_int5(int irq, void *dev_id) | 62 | static irqreturn_t sun3_int5(int irq, void *dev_id) |
63 | { | 63 | { |
64 | unsigned long flags; | ||
64 | unsigned int cnt; | 65 | unsigned int cnt; |
65 | 66 | ||
67 | local_irq_save(flags); | ||
66 | #ifdef CONFIG_SUN3 | 68 | #ifdef CONFIG_SUN3 |
67 | intersil_clear(); | 69 | intersil_clear(); |
68 | #endif | 70 | #endif |
@@ -76,6 +78,7 @@ static irqreturn_t sun3_int5(int irq, void *dev_id) | |||
76 | cnt = kstat_irqs_cpu(irq, 0); | 78 | cnt = kstat_irqs_cpu(irq, 0); |
77 | if (!(cnt % 20)) | 79 | if (!(cnt % 20)) |
78 | sun3_leds(led_pattern[cnt % 160 / 20]); | 80 | sun3_leds(led_pattern[cnt % 160 / 20]); |
81 | local_irq_restore(flags); | ||
79 | return IRQ_HANDLED; | 82 | return IRQ_HANDLED; |
80 | } | 83 | } |
81 | 84 | ||
diff --git a/arch/m68k/sun3x/config.c b/arch/m68k/sun3x/config.c index 33d3a1c6fba0..03ce7f9facfe 100644 --- a/arch/m68k/sun3x/config.c +++ b/arch/m68k/sun3x/config.c | |||
@@ -49,7 +49,6 @@ void __init config_sun3x(void) | |||
49 | mach_sched_init = sun3x_sched_init; | 49 | mach_sched_init = sun3x_sched_init; |
50 | mach_init_IRQ = sun3_init_IRQ; | 50 | mach_init_IRQ = sun3_init_IRQ; |
51 | 51 | ||
52 | arch_gettimeoffset = sun3x_gettimeoffset; | ||
53 | mach_reset = sun3x_reboot; | 52 | mach_reset = sun3x_reboot; |
54 | 53 | ||
55 | mach_hwclk = sun3x_hwclk; | 54 | mach_hwclk = sun3x_hwclk; |
diff --git a/arch/m68k/sun3x/time.c b/arch/m68k/sun3x/time.c index 047e2bcee3d7..9163294b0fb6 100644 --- a/arch/m68k/sun3x/time.c +++ b/arch/m68k/sun3x/time.c | |||
@@ -73,22 +73,21 @@ int sun3x_hwclk(int set, struct rtc_time *t) | |||
73 | 73 | ||
74 | return 0; | 74 | return 0; |
75 | } | 75 | } |
76 | /* Not much we can do here */ | ||
77 | u32 sun3x_gettimeoffset(void) | ||
78 | { | ||
79 | return 0L; | ||
80 | } | ||
81 | 76 | ||
82 | #if 0 | 77 | #if 0 |
83 | static void sun3x_timer_tick(int irq, void *dev_id, struct pt_regs *regs) | 78 | static irqreturn_t sun3x_timer_tick(int irq, void *dev_id) |
84 | { | 79 | { |
85 | void (*vector)(int, void *, struct pt_regs *) = dev_id; | 80 | irq_handler_t timer_routine = dev_id; |
81 | unsigned long flags; | ||
86 | 82 | ||
87 | /* Clear the pending interrupt - pulse the enable line low */ | 83 | local_irq_save(flags); |
88 | disable_irq(5); | 84 | /* Clear the pending interrupt - pulse the enable line low */ |
89 | enable_irq(5); | 85 | disable_irq(5); |
86 | enable_irq(5); | ||
87 | timer_routine(0, NULL); | ||
88 | local_irq_restore(flags); | ||
90 | 89 | ||
91 | vector(irq, NULL, regs); | 90 | return IRQ_HANDLED; |
92 | } | 91 | } |
93 | #endif | 92 | #endif |
94 | 93 | ||
diff --git a/arch/m68k/sun3x/time.h b/arch/m68k/sun3x/time.h index 496f406412ad..86ce78bb3c28 100644 --- a/arch/m68k/sun3x/time.h +++ b/arch/m68k/sun3x/time.h | |||
@@ -3,7 +3,6 @@ | |||
3 | #define SUN3X_TIME_H | 3 | #define SUN3X_TIME_H |
4 | 4 | ||
5 | extern int sun3x_hwclk(int set, struct rtc_time *t); | 5 | extern int sun3x_hwclk(int set, struct rtc_time *t); |
6 | u32 sun3x_gettimeoffset(void); | ||
7 | void sun3x_sched_init(irq_handler_t vector); | 6 | void sun3x_sched_init(irq_handler_t vector); |
8 | 7 | ||
9 | struct mostek_dt { | 8 | struct mostek_dt { |