diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2013-10-18 07:16:06 -0400 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2013-11-26 05:09:25 -0500 |
commit | 50190edb2a56bb9efa3e2f8ca32482dbd3e42412 (patch) | |
tree | a5d181e2ff31b23c1af38e1f85982ba6b86fec11 /arch/m68k/amiga/config.c | |
parent | 017cecee99d897ae426f3948e7b970eb4f95e1f4 (diff) |
m68k/amiga: Provide mach_random_get_entropy()
Use the beam position registers, which provide at least 17 bits of data
changing at 1.79 MHz.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68k/amiga/config.c')
-rw-r--r-- | arch/m68k/amiga/config.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c index 06920e85fac9..c425fa6c2795 100644 --- a/arch/m68k/amiga/config.c +++ b/arch/m68k/amiga/config.c | |||
@@ -360,6 +360,14 @@ static void __init amiga_identify(void) | |||
360 | #undef AMIGAHW_ANNOUNCE | 360 | #undef AMIGAHW_ANNOUNCE |
361 | } | 361 | } |
362 | 362 | ||
363 | |||
364 | static unsigned long amiga_random_get_entropy(void) | ||
365 | { | ||
366 | /* VPOSR/VHPOSR provide at least 17 bits of data changing at 1.79 MHz */ | ||
367 | return *(unsigned long *)&amiga_custom.vposr; | ||
368 | } | ||
369 | |||
370 | |||
363 | /* | 371 | /* |
364 | * Setup the Amiga configuration info | 372 | * Setup the Amiga configuration info |
365 | */ | 373 | */ |
@@ -397,6 +405,8 @@ void __init config_amiga(void) | |||
397 | mach_heartbeat = amiga_heartbeat; | 405 | mach_heartbeat = amiga_heartbeat; |
398 | #endif | 406 | #endif |
399 | 407 | ||
408 | mach_random_get_entropy = amiga_random_get_entropy; | ||
409 | |||
400 | /* Fill in the clock value (based on the 700 kHz E-Clock) */ | 410 | /* Fill in the clock value (based on the 700 kHz E-Clock) */ |
401 | amiga_colorclock = 5*amiga_eclock; /* 3.5 MHz */ | 411 | amiga_colorclock = 5*amiga_eclock; /* 3.5 MHz */ |
402 | 412 | ||