1 Index: kernel-cssu-2.6.28/arch/arm/mach-omap2/board-rx51.c
2 ===================================================================
3 --- kernel-cssu-2.6.28.orig/arch/arm/mach-omap2/board-rx51.c 2012-05-25 04:12:52.708683352 -0400
4 +++ kernel-cssu-2.6.28/arch/arm/mach-omap2/board-rx51.c 2012-05-25 03:52:23.617140000 -0400
9 +#include "board-rx51-secure.h"
11 #define RX51_USB_TRANSCEIVER_RST_GPIO 67
13 extern int omap_init_fb(void);
15 .set_pm_limits = rx51_usb_set_pm_limits,
18 +#ifdef CONFIG_ARM_ERRATA_430973
19 +static ssize_t rx51_errata_430973_show(struct kobject *kobj,
20 + struct kobj_attribute *attr,
26 + asm volatile ("mrc p15, 0, %0, c1, c0, 1" : "=r" (acr));
28 + return sprintf(buf,"%u\n",(acr >> 6) & 1);
31 +static ssize_t rx51_errata_430973_store(struct kobject *kobj,
32 + struct kobj_attribute *attr,
33 + const char *buf, size_t n)
37 + if (sscanf(buf, "%u", &value) != 1)
39 + printk(KERN_ERR "errata_430973: Invalid value\n");
43 + rx51_secure_update_aux_cr(1 << 6, 0);
45 + rx51_secure_update_aux_cr(0, 1 << 6);
50 +static struct kobj_attribute rx51_errata_430973 = {
52 + .name = __stringify(errata_430973),
55 + .show = rx51_errata_430973_show,
56 + .store = rx51_errata_430973_store,
59 +static void rx51_add_errata_430973_sysfs(void)
62 + ret = sysfs_create_file(kernel_kobj, &rx51_errata_430973.attr);
64 + printk(KERN_ERR "sysfs_create_file failed: %d\n", ret);
68 static void __init rx51_init(void)
74 omap_bt_init(&rx51_bt_config);
76 +#ifdef CONFIG_ARM_ERRATA_430973
77 + printk(KERN_INFO "Enabling ARM errata 430973 workaround.\n");
79 + rx51_secure_update_aux_cr(1 << 6, 0);
80 + rx51_add_errata_430973_sysfs();
84 static void __init rx51_map_io(void)