aboutsummaryrefslogtreecommitdiff
path: root/arch/cris/arch-v32
AgeCommit message (Collapse)Author
2008-03-04cris: correct usage of __user for copy to and from user space in ↵Jesper Nilsson
lib/usercopy and uaccess.h Function __copy_user_zeroing in arch/lib/usercopy.c had the wrong parameter set as __user, and in include/asm-cris/uaccess.h, it was not set at all for some of the calling functions. This will cut the number of warnings quite dramatically when using sparse. While we're here, remove useless CVS log and correct confusing typo. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Mikael Starvik <mikael.starvik@axis.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-03-04CRIS: Import string.c (memcpy) from newlib: fixes compile error with gcc 4Jesper Nilsson
Adrian Bunk reported another compile error with a SVN head GCC: ... CC arch/cris/arch-v10/lib/string.o /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/string.c:138: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/string.c:138: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/string.c:139: error: lvalue required as increment operand ... This is due to the use of the construct: *((long*)dst)++ = lc; Which isn't legal since casts don't return an lvalue. The solution is to import the implementation from newlib, which is continually autotested together with GCC mainline, and uses the construct: *(long *) dst = lc; dst += 4; Since this is an import of a file from newlib, I'm not touching the formatting or correcting any checkpatch errors. As for the earlier fix for memset.c, even if the two files for CRIS v10 and CRIS v32 are identical at the moment, it might be possible to tweak the CRIS v32 version. Thus, I'm not yet folding them into the same file, at least not until we've done some research on it. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Mikael Starvik <starvik@axis.com> Cc: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-14cris: import memset.c from newlib: fixes compile error with newer (pre4.3) gccJesper Nilsson
Adrian Bunk reported the following compile error with a SVN head GCC: ... CC arch/cris/arch-v10/lib/memset.o /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c: In function 'memset': /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:164: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:165: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:166: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:167: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:185: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:189: error: lvalue required as increment operand /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/cris/arch-v10/lib/memset.c:192: error: lvalue required as increment operand ... etc ... This is due to the use of the construct: *((long*)dst)++ = lc; Which is no longer legal since casts don't return an lvalue. The solution is to import the implementation from newlib, which is continually autotested together with GCC mainline, and uses the construct: *(long *) dst = lc; dst += 4; With this change, the generated code actually shrinks 76 bytes since gcc notices that it can use autoincrement for the move instruction in CRIS. text data bss dec hex filename 304 0 0 304 130 memset.old.o text data bss dec hex filename 228 0 0 228 e4 memset.o Since this is an import of a file from newlib, I'm not touching the formatting or correcting any checkpatch errors. Note also that even if the two files for the CRIS v10 and CRIS v32 are identical at the moment, it might be possible to tweak the CRIS v32 version. Thus, I'm not yet folding them into the same file, at least not until we've done some research on it. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Mikael Starvik <mikael.starvik@axis.com> Cc: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-08CRIS v32: Change drivers/i2c.c locking.Jesper Nilsson
- Change spin_lock + local_irq_save into spin_lock_irqsave - Change spin_unlock + local_irq_restore into spin_unlock_irqrestore - Return ENOTTY if ioctl is not recognized as a cris ioctl. - Make init functions static.
2008-02-08CRIS v32: Rewrite ARTPEC-3 gpio driver to avoid volatiles and general cleanup.Jesper Nilsson
Changes as suggested by Andrew Morton, plus general cleanup to ease later consolidation of driver into machine common driver. - Correct parameter type of gpio_write to const char __user * - Remove volatile from the arrays of machine dependent registers, use readl and writel to access them instead. - Remove useless casts of void. - Use spin_lock_irqsave for locking. - Break gpio_write into smaller sub-functions. - Remove useless breaks after returns. - Don't perform any change in IO_CFG_WRITE_MODE if values are invalid. (previously values were set and then set to zero) - Change cast for copy_to_user to (void __user *) - Make file_operations gpio_fops static and const. - Make setget_output static. (However, it's still inline since the CRIS architecture is still not SMP, which makes the function small enough to inline)
2008-02-08CRIS: Add new timerfd syscall entries.Jesper Nilsson
2008-02-08CRIS v32: Correct spelling of bandwidth in function name.Jesper Nilsson
2008-02-08CRIS v32: Clean up nandflash.c for ARTPEC-3 and ETRAX FS.Jesper Nilsson
Clean up issues noticed by Andrew Morton: - Use a combined struct for allocating the mtd_info and nand_chip structs instead of using anonymous memory as the example in Documentation/DocBook/mtdnand.tmpl - Use kzalloc instead of using kmalloc/memset(0) - Make crisv32_device_ready static.
2008-02-08CRIS: Move ETRAX_AXISFLASHMAP to common Kconfig file.Jesper Nilsson
2008-02-08CRIS v32: Fix minor formatting issue in mach-a3/io.cJesper Nilsson
2008-02-08CRIS v32: Initialize GIO even if we're rambooting in kernel/head.SJesper Nilsson
2008-02-08CRIS v32: Remove kernel/arbiter.c, it now exists in machine dependent directory.Jesper Nilsson
2008-02-08CRIS v32: Fix startup oops and replace hardcoded pagesize in vmlinux.lds.SJesper Nilsson
- Move alignment of init data to page size outside define CONFIG_BLK_DEV_INITRD This avoids oops due to memory on the same page as init data being freed. - Change hardcoded page size to use macro from asm/page.h - Add reserved memory via CONFIG_ETRAX_VMEM_SIZE. - Use available defines for TEXT_TEXT and INITCALLS. - Cleanup whitespace.
2008-02-08CRIS v32: Avoid work when switching between tasks with shared memory ↵Jesper Nilsson
descriptors in mm/tlb.c There is no need to do all this work if they share memory descriptors. Also, fix some minor whitespace and long lines.
2008-02-08CRIS v32: Add workaround for MMU hardware bug for ETRAX FS in mm/mmu.SJesper Nilsson
2008-02-08CRIS v32: Fix bug in internal memory allocator mm/intmem.cJesper Nilsson
- Fix bug where allocated memory didn't account for alignment. - Add support for ARTPEC-3 - Add module_init for crisv32_intmem_init.
2008-02-08CRIS v32: Change name of simulator config to CONFIG_ETRAX_VCS_SIM in mm/init.cJesper Nilsson
- Remove unneded code for ETRAX FS and ARTPEC-3
2008-02-08CRIS v32: Change lib/spinlock.S to use byte operations instead of dwords.Jesper Nilsson
2008-02-08CRIS v32: Move hw_settings.S to machine specific directories for ETRAX FS ↵Jesper Nilsson
and ARTPEC-3
2008-02-08CRIS v32: Update lib/checksum.S and lib/checksumcopy.SJesper Nilsson
- Slight tweaks, use $acr + addoq to propagate carry across the loop boundary. - Better use of latency cycles. - Remove duplicate folding of carry, it is not needed.
2008-02-08CRIS v32: Add lib/delay to build.Jesper Nilsson
2008-02-08CRIS v32: Add precise delay loops for ETRAX FS and ARTPEC-3.Jesper Nilsson
Implements cris_delay10ns.
2008-02-08CRIS v32: Update vcs_hook.c for ETRAX FS.Jesper Nilsson
- Clean up some formatting and whitespace.
2008-02-08CRIS v32: Move vcs_hook to machine specific directory.Jesper Nilsson
These files are different for ETRAX FS and ARTPEC-3.
2008-02-08CRIS v32: Update kernel/smp.c for CRIS v32.Jesper Nilsson
- Change include paths to machine specific headers (asm/arch/hwregs -> hwregs) - Add cpu_possible_map as cpumask_t and export it. - Drop struct pt_regs parameter from crisv32_ipi_interrupt. - timer -> timer0
2008-02-08CRIS v32: Update signal handling in kernel/signal.cJesper Nilsson
- do_signal now returns void, and does not have the previous signal set as a parameter. - Remove sys_rt_sigsuspend, we can use the common one instead. - Change sys_sigsuspend to be more like x86, don't call do_signal here. - handle_signal, setup_frame and setup_rt_frame now return -EFAULT if we've delivered a segfault, which is used by callers to perform necessary cleanup. - Break long lines, correct whitespace and formatting errors.
2008-02-08CRIS v32: Update boot/rescue/rescue.ldJesper Nilsson
- Update to work for ETRAX FS and ARTPEC-3
2008-02-08CRIS v32: Change names of config variable and register field for data available.Jesper Nilsson
- CONFIG_ETRAXFS_SIM -> CONFIG_ETRAX_VCS_SIM - ser_intr_mask.data_avail -> ser_intr_mask.dav
2008-02-08CRIS v32: Change debug and formatting in kernel/fasttimer.cJesper Nilsson
- Don't use SANITYCHECK(x) as a macro, test FAST_TIMER_SANITY_CHECKS with ifdef. This makes it possible for automatic indent etc to work. - Correct some whitespace errors. - Don't initialize static variable.
2008-02-08CRIS v32: Update kernel/crisksyms.cJesper Nilsson
- Include pinmux.h from machine specific directory. - Add some more symbols: crisv32_pinmux_alloc, crisv32_pinmux_dealloc_fixed, crisv32_io_get_name and crisv32_io_get
2008-02-08CRIS v32: Remove config ifdef around init function for drivers/sync_serial.cJesper Nilsson
The init function should be defined always.
2008-02-08CRIS v32: Remove drivers/gpio.c, now exists as machine specific file.Jesper Nilsson
2008-02-08CRIS v32: Update driver for RTC chip pcf8563.Jesper Nilsson
- Moved all calls to register_chrdev to a function called by module_init. - Added mutex locking. - Added better error handling at start up. - Added BIN_TO_BCD of the month value before it is saved to the RTC. - Corrected the month value returned by pcf8563_readreg. - Cache the voltage low value at driver init so the battery status information does not get 'accidentally' cleared when setting the RTC time. - Removed obsolete CONFIG_ETRAX_RTC_READONLY - Voltage low ioctl():s RTC_VLOW_RD -> RTC_VL_READ, RTC_VLOW_SET -> RTC_VL_CLR
2008-02-08CRIS v32: Remove drivers/nandflash.h, now exists as machine specific file.Jesper Nilsson
2008-02-08CRIS v32: ETRAX FS Change name of LED macros in drivers/mach-fs/gpio.c to ↵Jesper Nilsson
avoid collision.
2008-02-08CRIS v32: Change name of LED macros in drivers/mach-a3/gpio.c to avoid ↵Jesper Nilsson
collision.
2008-02-08CRIS v32: Change include path for hwregs in drivers/iop_fw_load.cJesper Nilsson
Also, remove useless CVS id tag.
2008-02-08CRIS v32: Rewrite of stream co-processor driver for ETRAX FS and ARTPEC-3Jesper Nilsson
- Workaround for cachebug (Guinness TR 106). - Add ARTPEC-3 support.
2008-02-08CRIS v32: Replace build flags in boot/rescue/MakefileJesper Nilsson
- Change AFLAGS to asflags-y, LDFLAGS to ldflags-y and EXTRA_CFLAGS to ccflags-y. We only need the flags in this Makefile.
2008-02-08CRIS v32: Replace build flags in boot/compressed/MakefileJesper Nilsson
- Change AFLAGS to asflags-y, LDFLAGS to ldflags-y and KBUILD_CFLAGS to ccflags-y. We only need the flags in this Makefile.
2008-02-08CRIS v32: Remove useless CVS id tag from boot/compressed/READMEJesper Nilsson
2008-02-08CRIS: Move common Kconfig variable ETRAX_RTC to arch independet Kconfig.Jesper Nilsson
2008-02-08CRIS v32: Update and improve kernel/time.cJesper Nilsson
- Shorten include paths to machine dependent header files. - Register name for first timer is now regi_timer0. - Remove raw_printk hack, use oops_in_progress instead. - Add handling of CPU frequency scaling for CRIS. - Remove regs parameter to timer_interrupt, get them from get_irq_regs instead. - Whitespace and formatting changes.
2008-02-08CRIS v32: Update and improve kernel/traps.cJesper Nilsson
- Remove watchdog handling, handled elsewhere. - Shorten include paths to machine dependent header files. - Remove raw_printk hack, we now use oops_in_progress instead. - Add handling of BUG for exception handlers (break 14). - Formatting and whitespace changes.
2008-02-08CRIS v32: Minor updates to kernel/process.cJesper Nilsson
- Shorten include paths for machine dependent header files. - Remove unused extern declaration of etrax_gpio_wake_up_check. - Register name for first timer is now regi_timer0.
2008-02-08CRIS v32: Update and simplify kernel/irq.c.Jesper Nilsson
- First timer register has changed name to timer0. - Build IRQs with only IRQ number, mask bit will be calculated instead. - Add more IRQs, up to 64 supported. - Use arrays to hold which IRQs triggered instead of trying to do magic with two 32 bit values now that more than 32 IRQs are supported.
2008-02-08CRIS v32: Update kernel/head.SJesper Nilsson
- Shorten include paths for machine specific header files. - Add magic for booting NAND flash. - Change CONFIG_ETRAXFS_SIM to CONFIG_ETRAX_VCS_SIM. - Use assembler macros for initializing hardware (clocks) - Add stubs for SMP slave CPUs. - Search for cramfs or jffs2 if no romfs found. - Initialize l2cache.
2008-02-08CRIS v32: Update and improve fasttimer.cJesper Nilsson
- Change include path to machine dependent header files. - Remove __INLINE__, it expands to inline anyway. - Don't initialize static variables. - Change timers to use fasttimer_t instead of timevals. - Change name of timeval_cmp to fasttime_cmp to highlight this. - Register name for first timer is regi_timer0, not regi_timer. - Whitespace and formatting changes. - Don't return if we're blocking interrupts, goto done and restore interrupts. - Disable interrupts while walking the fasttimer list, only restore while doing the callback. - Remove #ifdef DECLARE_WAITQUEUE, this code won't be used in another OS. - Remove CVS log.
2008-02-08CRIS v32: Update debugport.Jesper Nilsson
- Shorten include paths to machine dependent headers. - Add support for fifth serial port. - Remove CONFIG_ETRAXFS_SIM and CONFIG_ETRAX_DEBUG_PORT_NULL, no longer used. - Remove raw_printk and stupid_debug hack, no longer needed. - Remove dummy console stuff, no longer needed. - Correct some register type names. - Correct some whitespace errors and formatting.
2008-02-08CRIS v32: Update boot/rescue/head.S code.Jesper Nilsson
- Add ifdef for ETRAX_AXISFLASHMAP to avoid compiling file unless it is set. - Use assembler macros for setting up clocks. - Don't copy image, just jump to it (only works for NOR flash)