1 typedef int (*initcall_t)(void);
4 extern unsigned int iop13xx_atux_mem_base;
5 static inline __attribute__((always_inline)) void * __iop13xx_ioremap(unsigned long cookie, unsigned int size, unsigned long flags) {
8 case 0x80000000UL ... (0x80000000UL + 0x3a000000UL - 1): if (__builtin_expect(!!(!iop13xx_atux_mem_base), 0)) retval = ((void *)0);
10 default: retval = __ioremap(cookie, size, flags);
16 static struct imu_dev imu[4];
17 static int imu_major = 0;
18 void init_callback(int queueid) {
20 void error_callback(int queueid) {
22 static int __attribute__ ((__section__ (".init.text"))) imu_dev_init(void) {
28 if (cdev_add(&imu[i].cdev, (((imu_major) << 20) | (i)), 1)) {
29 printk("<4>" "Error cdev_add imu%i\n", i);
31 queue_base = __iop13xx_ioremap(((128*1024*1024) + (i * (16*64))), ((16*64)), 0);
32 err = iop_queue_init(i, (void *)(128*1024*1024) + (i * (16*64)), queue_base, 64, 16, init_callback, error_callback);
35 static initcall_t __initcall_imu_dev_init __attribute__((__used__)) __attribute__((__section__(".initcall" "6" ".init"))) = imu_dev_init;