X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/4741579f805d42d80989f7585565db2698dbd677..374bb82f67f49829cb443fe95a11d88c83675be4:/target/linux/lantiq/patches/104-board_xway.patch diff --git a/target/linux/lantiq/patches/104-board_xway.patch b/target/linux/lantiq/patches/104-board_xway.patch index fcd9c0e32..297fbd346 100644 --- a/target/linux/lantiq/patches/104-board_xway.patch +++ b/target/linux/lantiq/patches/104-board_xway.patch @@ -82,7 +82,7 @@ + .set = lq_ebu_set, + .base = 32, + .ngpio = 16, -+ .can_sleep = 1, ++ .can_sleep = 0, + .owner = THIS_MODULE, +}; + @@ -220,7 +220,7 @@ + .set = lq_stp_set, + .base = 48, + .ngpio = 24, -+ .can_sleep = 1, ++ .can_sleep = 0, + .owner = THIS_MODULE, +}; + @@ -615,7 +615,7 @@ +} --- /dev/null +++ b/arch/mips/lantiq/xway/devices.c -@@ -0,0 +1,305 @@ +@@ -0,0 +1,336 @@ +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published @@ -787,10 +787,18 @@ + .flags = IORESOURCE_MEM, +}; + ++static struct platform_device lq_ebu = ++{ ++ .name = "lq_ebu", ++ .resource = &lq_ebu_resource, ++ .num_resources = 1, ++}; ++ +void __init +lq_register_gpio_ebu(unsigned int value) +{ -+ platform_device_register_simple("lq_ebu", 0, &lq_ebu_resource, 1); ++ lq_ebu.dev.platform_data = (void*) value; ++ platform_device_register(&lq_ebu); +} + +/* ethernet */ @@ -863,13 +871,23 @@ + }, +}; + ++static unsigned int *cp1_base; ++unsigned int* ++lq_get_cp1_base(void) ++{ ++ return cp1_base; ++} ++EXPORT_SYMBOL(lq_get_cp1_base); ++ +void __init +lq_register_tapi(void) +{ +#define CP1_SIZE (1 << 20) + dma_addr_t dma; + mps_device.dev.platform_data = ++ cp1_base = + (void*)CPHYSADDR(dma_alloc_coherent(NULL, CP1_SIZE, &dma, GFP_ATOMIC)); ++ mps_device.dev.platform_data = cp1_base; + platform_device_register(&mps_device); + platform_device_register(&vmmc_device); +} @@ -921,9 +939,22 @@ +{ + platform_device_register_simple(name, 0, 0, 0); +} ++ ++/* madwifi */ ++int lantiq_emulate_madwifi_eep = 0; ++EXPORT_SYMBOL(lantiq_emulate_madwifi_eep); ++ ++void __init ++lq_register_madwifi_eep(void) ++{ ++ lantiq_emulate_madwifi_eep = 1; ++} ++ ++ ++ --- /dev/null +++ b/arch/mips/lantiq/xway/devices.h -@@ -0,0 +1,26 @@ +@@ -0,0 +1,28 @@ +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published @@ -944,6 +975,8 @@ +extern void __init lq_register_gpio_leds(struct gpio_led *leds, int cnt); +extern void __init lq_register_pci(struct lq_pci_data *data); +extern void __init lq_register_nor(struct physmap_flash_data *data); ++extern void __init lq_register_tapi(void); ++extern void __init lq_register_madwifi_eep(void); +extern void __init lq_register_wdt(void); +extern void __init lq_register_ethernet(struct lq_eth_data *eth); +extern void __init lq_register_asc(int port); @@ -1848,13 +1881,13 @@ + struct timer_dev_timer timer[MAX_NUM_OF_32BIT_TIMER_BLOCKS * 2]; +}; + -+static int gptu_ioctl(struct inode *, struct file *, unsigned int, unsigned long); ++static long gptu_ioctl(struct file *, unsigned int, unsigned long); +static int gptu_open(struct inode *, struct file *); +static int gptu_release(struct inode *, struct file *); + +static struct file_operations gptu_fops = { + .owner = THIS_MODULE, -+ .ioctl = gptu_ioctl, ++ .unlocked_ioctl = gptu_ioctl, + .open = gptu_open, + .release = gptu_release +}; @@ -2368,7 +2401,7 @@ +} +EXPORT_SYMBOL(lq_set_counter); + -+static int gptu_ioctl(struct inode *inode, struct file *file, unsigned int cmd, ++static long gptu_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + int ret;