aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/amiga/config.c
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2013-10-18 07:16:06 -0400
committerGeert Uytterhoeven <geert@linux-m68k.org>2013-11-26 05:09:25 -0500
commit50190edb2a56bb9efa3e2f8ca32482dbd3e42412 (patch)
treea5d181e2ff31b23c1af38e1f85982ba6b86fec11 /arch/m68k/amiga/config.c
parent017cecee99d897ae426f3948e7b970eb4f95e1f4 (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.c10
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
364static 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