aboutsummaryrefslogtreecommitdiff
path: root/arch/cris/arch-v10
AgeCommit message (Collapse)Author
2008-06-20Add a bunch of cycle_kernel_lock() callsJonathan Corbet
All of the open() functions which don't need the BKL on their face may still depend on its acquisition to serialize opens against driver initialization. So make those functions acquire then release the BKL to be on the safe side. Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20Add "no BKL needed" comments to several driversJonathan Corbet
This documents the fact that somebody looked at the relevant open() functions and concluded that, due to their trivial nature, no locking was needed. Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-05-18cris: cdev lock_kernel() pushdownJonathan Corbet
Push the cdev lock_kernel() call into cris drivers. Signed-off-by: Jonathan Corbet <corbet@lwn.net>
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-03-04CRIS v10: Include mm.h instead of vmstat.h in kernel/time.cJesper Nilsson
Commit 2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4 (CONFIG_HIGHPTE vs. sub-page page tables) introduced use of inc_zone_page_state and dec_zone_page_state in include/linux/mm.h. Those are defined in include/linux/vmstat.h, but after it includes mm.h, making it impossible to include vmstat.h since inc_zone_page_state and dec_zone_page_state then would be undefined. arch/cris/arch-v10/kernel/time.c does just this, which makes the CRIS v10 build break with the following error: ... CC arch/cris/arch-v10/kernel/time.o In file included from include/linux/vmstat.h:7, from arch/cris/arch-v10/kernel/time.c:17: include/linux/mm.h: In function 'pgtable_page_ctor': include/linux/mm.h:902: error: implicit declaration of function 'inc_zone_page_state' include/linux/mm.h: In function 'pgtable_page_dtor': include/linux/mm.h:908: error: implicit declaration of function 'dec_zone_page_state' make[2]: *** [arch/cris/arch-v10/kernel/time.o] Error 1 make[1]: *** [arch/cris/arch-v10/kernel] Error 2 make: *** [sub-make] Error 2 ... By changing kernel/time.c to include linux/mm.h, the build succeeds. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Mikael Starvik <mikael.starvik@axis.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> 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: Add new timerfd syscall entries.Jesper Nilsson
2008-02-08CRIS v10: Cleanup of drivers/gpio.cJesper Nilsson
- Change parameters of gpio_write (const char * buf -> const char __user *buf) - Don't initialize static variables to zero. - Remove useless casts from void. - Change name of interrupt routine (gpio_pa_interrupt -> gpio_interrupt) - Use kzmalloc instead of allocating memory and zeroing it manually. - Correct casts for copy_to_user and copy_from_user to (void __user *) - Make file_operations gpio_fops static. - Make ioif_watcher static, not used outside this file.
2008-02-08CRIS: Move ETRAX_AXISFLASHMAP to common Kconfig file.Jesper Nilsson
2008-02-08CRIS v10: Update drivers/gpio.c, fix locking and general improvements.Jesper Nilsson
- Change all spin_lock/local_irq_save to spin_lock_irqsave. - Change multiple returns in functions where we have a lock to goto out. - Correct number of arguments to gpio_poll_timer_interrupt, gpio_pa_interrupt. - Break out gpio_write logic to smaller functions to make it readable. - In setget_input and setget_output, avoid extra if-indent level. - Change name LED_* -> CRIS_LED_* to avoid name clash. - Don't use braces around single statement ifs. - Fix whitespace errors. - Remove useless CVS id and log.
2008-02-08CRIS v10: Change name of low voltage read and set macros.Jesper Nilsson
2008-02-08CRIS v10: Remove duplicated folding of carry from lib/checksum.S, it is not ↵Jesper Nilsson
needed. Also, remove useless CVS id tag.
2008-02-08CRIS v10: Remove duplicated folding of carry from lib/checksumcopy.S, it is ↵Jesper Nilsson
not needed. Also, remove useless CVS id tag.
2008-02-08CRIS v10: Clear TIF_SYSCALL_TRACE flag in ptrace_disable in kernel/ptrace.cJesper Nilsson
2008-02-08CRIS v10: Update kernel/io_interface_mux.cJesper Nilsson
Fixed a bug where two interfaces using pins in the same pin group could not be allocated at the same time even if there where no pin collisions. Change all restore and returns into goto exit pattern. Also, remove useless CVS id and correct chapter reference for ETRAX100LX Designer's Reference in comment.
2008-02-08CRIS v10: Setup serial port 2 to avoid accidental TXD pulse on startup.Jesper Nilsson
If serial port 2 is used, select it in R_GEN_CONFIG. If serial port 2 is used, setup the control registers for the port. This is done to avoid a pulse on the TXD line during start up, which could disturb some units. Also, remove useless CVS id and log.
2008-02-08CRIS v10: Add synchronous serial port driver for CRIS v10.Jesper Nilsson
2008-02-08CRIS v10: Don't call get_mmu_context when switching between tasks with ↵Jesper Nilsson
shared memory descriptors Also, cleanup formatting and fix whitespace errors.
2008-02-08CRIS v10: Fix bug where error returns didn't restore irqs in mm/fault.cJesper Nilsson
Don't return when we're inside local_irq_disable(), use goto exit instead. Also, cleanup some whitespace errors.
2008-02-08CRIS v10: Remove useless CVS id tag from lib/old_checksum.cJesper Nilsson
2008-02-08CRIS v10: Remove useless CVS id and log from lib/dram_init.SJesper Nilsson
2008-02-08CRIS v10: Remove useless CVS id from kernel/shadows.cJesper Nilsson
2008-02-08CRIS v10: Reformat drivers/makefile using tabs.Jesper Nilsson
2008-02-08CRIS: Move common Kconfig variable ETRAX_RTC to arch independet Kconfig.Jesper Nilsson
2008-02-08CRIS v10: Remove CVS id from kernel/process.cJesper Nilsson
2008-02-08CRIS v10: Remove CVS log and id from kernel/kgdb.cJesper Nilsson
2008-02-08CRIS v10: Cleanup kernel/irq.cJesper Nilsson
- Remove useless CVS id tag. - Remove no longer needed extern declarations for kgdb.
2008-02-08CRIS v10: Cleanup kernel/fasttimer.cJesper Nilsson
- Change C99 comment style to C89. - Remove superfluous SANITYCHECK macro, test FAST_TIMER_SANITY_CHECKS instead.
2008-02-08CRIS v10: Cleanup kernel/entry.S CVS log and id.Jesper Nilsson
2008-02-08CRIS v10: Remove CVS id tag from kernel/dma.cJesper Nilsson
2008-02-08CRIS v10: Break long lines in boot/rescue/head.SJesper Nilsson
2008-02-08CRIS v10: Remove CVS tag from boot/compressed/misc.cJesper Nilsson
2008-02-08CRIS v10: Update and fix bug in kernel/debugport.Jesper Nilsson
- Move local_irq_save to after possible return in console_write_direct. - Remove old raw_printk hack, not needed anymore. - Add watchdog handling. - Make serial_driver use depend on CONFIG_ETRAX_SERIAL. - Remove useless CVS log.
2008-02-08CRIS v10: Update driver for pcf8563Jesper Nilsson
- Use mutex instead of spinlock, fixes kernel bugzilla report 8339. - Make sure that pcf8563_init can be called multiple times but only setup once. - Change RTC_VLOW_RD -> RTC_VL_READ, RTC_VLOW_SET -> RTC_VL_CLR - Cache the voltage low value at driver init so the battery status information does not get 'accidentally' cleared when setting the RTC time. - Add weekday handling. - Correct leapyear handling to include 100 and 400 year exceptions. - Correct whitespace and formatting errors. - Remove useless CVS id tag.
2008-02-08CRIS v10: Fix bugs in i2c_init and i2c_readregJesper Nilsson
- Set the variable first to zero after first setup, so we can stop multiple calls to i2c_init from trying to setup i2c. - The last byte read by the master in an i2c transfer needs to be NACKed, not ACKed. - Also, remove useless CVS log and CVS id tags.
2008-02-08CRIS v10: Cleanup drivers/eeprom.c to avoid import conflicts.Jesper Nilsson
- Remove useless CVS log and CVS id tags. - Whitespace fix and remove C++ comment.
2008-02-08CRIS v10: Correct and cleanup boot/rescue/testrescue.SJesper Nilsson
- Correct include path for sv_addr_ag.h, should be asm/arch/ - Fix some whitespace errors. - Remove useless CVS id tag.
2008-02-08CRIS v10: Correct and cleanup boot/rescue/kimagerescue.SJesper Nilsson
- Correct include path for sv_addr_ag.h, should be included from asm/arch/ - Remove useless CVS id tag. - Correct whitespace errors and some formatting.
2008-02-08CRIS v10: Change boot/rescue/Makefile to use ccflags-y, asflags-y and ldflags-y.Jesper Nilsson
Replace EXTRA_CFLAGS with ccflags-y. Change ASFLAGS and LDFLAGS into asflags-y and ldflags-y, we only need these flags in this makefile.
2008-02-08CRIS v10: Update boot/compressed/Makefile to use ccflags-y and ldflags-yJesper Nilsson
Replace use of EXTRA_CFLAGS with ccflags-y and LDFLAGS with ldflags-y, (we only need to change linker flags for this makefile)
2008-02-08CRIS v32: Update traps.cJesper Nilsson
- Remove raw_prink hack, use oops_in_progress instead. - When ETRAX_WATCHDOG_NICE_DOGGY is set, loop in trap after oops dump instead of rebooting. - Break long lines to less than 80 chars. - Fix whitespace errors. - Remove unnecessary comments.
2008-02-08CRIS v10: Update and improve axisflashmap.cJesper Nilsson
- Add config to use mtd0 as whole flash device. - Fix whitespace errors. - Remove braces around single statement ifs. - Break long lines. - Remove unnecessary CVS log.
2008-02-08CRIS v10: Update rescue head.sJesper Nilsson
- Correct whitespace problems. - Add ifdef for ETRAX_AXISFLASHMAP to avoid compile error when not set.
2008-02-08CRIS v10: Update rescue Kbuild makefile.Jesper Nilsson
- Remove old specific targets, use more generic ones instead. - Use if_changed to avoid creating new images when no change. Removes a lot of cruft. - Use EXTRA_CFLAGS instead of CFLAGS.
2008-02-08CRIS v10: Update boot/compressed Kbuild makefile.Jesper Nilsson
- Remove old specific targets, use more generic ones instead. - Use if_changed to avoid creating new images when no change. - Use EXTRA_CFLAGS instead of CFLAGS.
2008-02-08CRIS v10: Update boot Kbuild makefile.Jesper Nilsson
- Remove old specific targets, use more generic ones instead.
2008-02-08CRIS: Rearrange Kconfigs for v10 and v32 to allow compilation without warnings.Jesper Nilsson
- Remove some unneeded configs and add some new ones. - Merge common config items to common file instead of duplicating them. - Pull in standard Kconfig.preempt. - Remove some unneeded Kconfigs for subsystems not (yet) available on CRIS (md, scsi, ieee1394, i2o, isdn, telephony, media, pcmcia, pci) - Rename CRISv32 config items which had different types from CRISv10. (ETRAX_LED2G, ETRAX_LED2R, ETRAX_LED3G, ETRAX_LED3R, ETRAX_I2C_DATA_PORT, ETRAX_I2C_CLK_PORT)
2008-02-05CRIS: avoid using arch links in KconfigJesper Nilsson
Improve including of architecture dependent Kconfig files. - Always include the architecture dependent Kconfig files. - Wrap architecture dependent Kconfig files inside an appropriate "if ETRAX_ARCH_Vxx" block. This makes it possible to run the configuration even without the arch links, which are created later in the build process. Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-05timerfd: new timerfd APIDavide Libenzi
This is the new timerfd API as it is implemented by the following patch: int timerfd_create(int clockid, int flags); int timerfd_settime(int ufd, int flags, const struct itimerspec *utmr, struct itimerspec *otmr); int timerfd_gettime(int ufd, struct itimerspec *otmr); The timerfd_create() API creates an un-programmed timerfd fd. The "clockid" parameter can be either CLOCK_MONOTONIC or CLOCK_REALTIME. The timerfd_settime() API give new settings by the timerfd fd, by optionally retrieving the previous expiration time (in case the "otmr" parameter is not NULL). The time value specified in "utmr" is absolute, if the TFD_TIMER_ABSTIME bit is set in the "flags" parameter. Otherwise it's a relative time. The timerfd_gettime() API returns the next expiration time of the timer, or {0, 0} if the timerfd has not been set yet. Like the previous timerfd API implementation, read(2) and poll(2) are supported (with the same interface). Here's a simple test program I used to exercise the new timerfd APIs: http://www.xmailserver.org/timerfd-test2.c [akpm@linux-foundation.org: coding-style cleanups] [akpm@linux-foundation.org: fix ia64 build] [akpm@linux-foundation.org: fix m68k build] [akpm@linux-foundation.org: fix mips build] [akpm@linux-foundation.org: fix alpha, arm, blackfin, cris, m68k, s390, sparc and sparc64 builds] [heiko.carstens@de.ibm.com: fix s390] [akpm@linux-foundation.org: fix powerpc build] [akpm@linux-foundation.org: fix sparc64 more] Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Cc: Michael Kerrisk <mtk-manpages@gmx.net> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Davide Libenzi <davidel@xmailserver.org> Cc: Michael Kerrisk <mtk-manpages@gmx.net> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>