summaryrefslogtreecommitdiff
path: root/drivers/staging/vme
AgeCommit message (Collapse)Author
2011-06-28Staging: VME: Introduce IOCTL to generate VME interrupts.Vincent Bossier
The vme_irq_set is oblviously not needed (a remnant from old tests) and the IOCTL exchange types have been updated following Greg's comments. Allow the IOCTL call to generate VME interrupts when called on the vme/ctl device with the right arguments. Signed-off-by: Vincent Bossier <vincent.bossier@gmail.com> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-28Staging: VME: Fix ca91cx42 VME interrupt generation.Vincent Bossier
The wait_event_interruptible call requires a condition as second argument that needs to be true sometimes, which is obviously not the case with '0'. The new logic is inspired from the tsi148 driver and takes into account Universe II chip specifics. Signed-off-by: Vincent Bossier <vincent.bossier@gmail.com> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-28Staging: VME: Make vme/ctl device available for IOCTL operations only.Vincent Bossier
Resurrect the vme/ctl device by allowing to open it even if it has no resources and make related read/write/llseek operations dummy. Signed-off-by: Vincent Bossier <vincent.bossier@gmail.com> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-28Staging: VME: Fix Universe II int ack logic.Vincent Bossier
The driver must acknowledge the interrupts that have been actually serviced, not the ones active. The current code could acknowledge an interrupt that has not been serviced at all. Signed-off-by: Vincent Bossier <vincent.bossier@gmail.com> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-06-28Staging VME: Fix remaining checkpatch.pl errors.Vincent Bossier
This patch solves all the existing issues reported by checkpatch.pl in the VME sub-system. Signed-off-by: Vincent Bossier <vincent.bossier@gmail.com> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-03-31Fix common misspellingsLucas De Marchi
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
2011-03-14staging: vme: Remove NULL check before kfreeIlia Mirkin
This patch was generated by the following semantic patch: // <smpl> @@ expression E; @@ - if (E != NULL) { kfree(E); } + kfree(E); @@ expression E; @@ - if (E != NULL) { kfree(E); E = NULL; } + kfree(E); + E = NULL; // </smpl> Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-28staging: vme: remove unreachable codeManohar Vanga
Remove some more unreachable code found in bridges/vme_ca91cx42.c and bridges/vme_tsi148.c Signed-off-by: Manohar Vanga <manohar.vanga@cern.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-28staging: vme: remove unreachable codeManohar Vanga
Remove some unreachable code (kfree calls) from vme.c Signed-off-by: Manohar Vanga <manohar.vanga@cern.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-23staging: vme: fix loop conditionManohar Vanga
Fix loop condition in vme_register_bridge that results in an infinite loop in the event that device_register fails. Signed-off-by: Manohar Vanga <manohar.vanga@cern.ch> Acked-by: Martyn Welch <martyn.welch@ge.com> Acked-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-23staging: vme: remove unreachable codeManohar Vanga
Removed some unreachable code from vme_register_bridge Signed-off-by: Manohar Vanga <manohar.vanga@cern.ch> Acked-by: Martyn Welch <martyn.welch@ge.com> Acked-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-01-28Delete zero-length drivers/staging/vme/bridges/Module.symversJeff Garzik
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2010-12-09Staging: vme_tsi148: use DEFINE_PCI_DEVICE_TABLENamhyung Kim
Convert 'const struct pci_device_id xxx[]' to 'DEFINE_PCI_DEVICE_TABLE(xxx)'. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-09Staging: vme_ca91cx42: use DEFINE_PCI_DEVICE_TABLENamhyung Kim
Convert 'const struct pci_device_id xxx[]' to 'DEFINE_PCI_DEVICE_TABLE(xxx)'. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-03staging/vme_user: add missing calls to vme_master_free calls in .removeEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-03staging/vme/vme_user: use __dev{init, exit} for .probe and .removeEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> [martyn.welch@ge.com: Fixed checkpatch line length warnings] Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-03staging/vme_user: fix usage of the slave resources after they've been freedEmilio G. Cota
buf_unalloc() frees the memory buffers allocated with vme_alloc_consistent. The associated VME resource is needed in both vme_alloc_consistent and vme_free_consistent; however the slave VME resources are being freed before the calls to vme_free_consistent are made, which means the buffers are never returned. Fix this by freeing the VME resources only after the consistent buffers have been returned. Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: ca91cx42: mark the registers' base address pointer as __iomemEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: tsi148: mark the registers' base address pointer as __iomemEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: mark struct vme_master_resource's base address pointer as __iomemEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme_user: mark user-space buffers with __userEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme_user: remove __iomem marking from kern_buf and derivatesEmilio G. Cota
kern_buf is not iomem; it comes from kmalloc and is directly dereferenced. Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme_user: use an unsigned int for counting the number of kparamsEmilio G. Cota
unsigned int is what struct kparam_array internally uses. Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme_user: declare private variables as staticEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: ca91cx42: declare static functions as suchEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: tsi148: declare static functions as suchEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: tsi148: remove unreachable lineEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: tsi148: fix warning in free_irqEmilio G. Cota
The cookie passed to request_irq isn't the same as the one passed to free_irq, which results in the following warning: [ 63.243533] WARNING: at kernel/irq/manage.c:899 __free_irq+0x9b/0x17d() [ 63.243533] Hardware name: [ 63.243533] Trying to free already-free IRQ 17 [ 63.243533] Modules linked in: vme_tsi148(-) vme e1000e iTCO_wdt iTCO_vendor_support [last unloaded: scsi_wait_scan] [ 63.243533] Pid: 2013, comm: rmmod Not tainted 2.6.35 #2 [ 63.243533] Call Trace: [ 63.243533] [<ffffffff81036ea3>] warn_slowpath_common+0x80/0x98 [ 63.243533] [<ffffffff81036f4f>] warn_slowpath_fmt+0x41/0x43 [ 63.243533] [<ffffffff810678c4>] __free_irq+0x9b/0x17d [ 63.243533] [<ffffffff810679d9>] free_irq+0x33/0x4e [ 63.243533] [<ffffffffa004a897>] tsi148_irq_exit+0x6b/0x70 [vme_tsi148] [...] [ 63.243533] ---[ end trace bbf92311d969efb4 ]--- Fix it by passing the same cookie to both functions. Signed-off-by: Emilio G. Cota <cota@braap.org> [martyn.welch@ge.com: modified to remove checkpatch warnings] Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: tsi148: remove double freeing of the IRQ in .removeEmilio G. Cota
tsi148_irq_exit is called twice in .remove, which causes an oops. Remove the second call, which apart from being redundant cannot possibly work; the CR/CSR space has been already unmapped. Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: tsi148: use list_for_each_safe when deleting resources in .removeEmilio G. Cota
This fixes an oops when removing the module. Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: fix bogus clearing of the bus number in vme_free_bus_numEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme_user: remove unreachable lineEmilio G. Cota
Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme_user: return the appropriate error code when module_init failsEmilio G. Cota
When init_module fails, 0 is returned anyway; the module is then installed and oopses when we try to remove it: [ 3236.368009] WARNING: at drivers/base/driver.c:262 driver_unregister+0x36/0x6f() [ 3236.368012] Hardware name: [ 3236.368014] Unexpected driver unregister! [ 3236.368016] Modules linked in: vme_user(-) vme_tsi148 vme e1000e iTCO_wdt iTCO_vendor_support [last unloaded: vme] [ 3236.368027] Pid: 16162, comm: rmmod Not tainted 2.6.35 #2 [ 3236.368029] Call Trace: [ 3236.368037] [<ffffffff81036ea3>] warn_slowpath_common+0x80/0x98 [ 3236.368044] [<ffffffff81060a65>] ? __try_stop_module+0x0/0x58 [ 3236.368049] [<ffffffff81036f4f>] warn_slowpath_fmt+0x41/0x43 [ 3236.368054] [<ffffffff81060a65>] ? __try_stop_module+0x0/0x58 [ 3236.368059] [<ffffffff811e8f78>] driver_unregister+0x36/0x6f [ 3236.368066] [<ffffffffa004aa44>] vme_unregister_driver+0xd/0xf [vme] [ 3236.368072] [<ffffffffa00616c8>] vme_user_exit+0x10/0x1e [vme_user] [ 3236.368076] [<ffffffff810612c1>] sys_delete_module+0x1ba/0x226 [ 3236.368082] [<ffffffff812d6e14>] ? do_page_fault+0x25d/0x28a [ 3236.368088] [<ffffffff8100202b>] system_call_fastpath+0x16/0x1b [ 3236.368092] ---[ end trace cab6d88ebc44c1de ]--- The appended fixes it by returning the appropriate error code in module_init whenever something goes wrong, thus cancelling the insertion of the module. Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-11-16staging: vme: style: convert '&(foo)' to '&foo'Emilio G. Cota
done with find . -name '*.c' | xargs perl -p -i -e 's/&\(([^()]+)\)/&$1/g' Signed-off-by: Emilio G. Cota <cota@braap.org> Acked-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-30Staging: vme: Assure D16 cycle if required in master_read and master_writeArthur Benilov
From a95892fc2246d6dc45f57b7dd68f32b9b28bd0f7 Mon Sep 17 00:00:00 2001 From: Arthur Benilov <arthur.benilov@gmail.com> Date: Fri, 24 Sep 2010 13:51:07 +0200 Subject: [PATCH] Staging: vme: Assure D16 cycle if required in master_read and master_write memcpy_fromio() and memcpy_toio() functions apply internally to __memcpy() that performs data transfer in 32-bits or 8-bits blocks (at least on x86). This makes impossible to perform D16 cycle with ca91cx42 bridge. Provided modification assures performing data transfer with 32, 16, and 8 bits chunks. Signed-off-by: Arthur Benilov <arthur.benilov@iba-group.com> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-09-07staging: Bulk convert the semaphore messThomas Gleixner
init_MUTEX(_LOCKED) and DECLARE_MUTEX are going away. Bulk convert staging users. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-07-22Staging: autoconvert trivial BKL users to private mutexArnd Bergmann
All these files use the big kernel lock in a trivial way to serialize their private file operations, typically resulting from an earlier semi-automatic pushdown from VFS. None of these drivers appears to want to lock against other code, and they all use the BKL as the top-level lock in their file operations, meaning that there is no lock-order inversion problem. Consequently, we can remove the BKL completely, replacing it with a per-file mutex in every case. Using a scripted approach means we can avoid typos. file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*<linux\/smp_lock.h>/d' ${file} else sed -i 's/include.*<linux\/smp_lock.h>.*$/include <linux\/mutex.h>/g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^\(static\|int\|long\)/ { /^\(static\|int\|long\)/istatic DEFINE_MUTEX(${name}_mutex); } }" \ -e "s/\(un\)*lock_kernel\>[ ]*()/mutex_\1lock(\&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*\<smp_lock.h\>/d' ${file} \ -e '/cycle_kernel_lock()/d' fi Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-07-08Staging: vme: vme_ca91cx42: remove casts from void*Kulikov Vasiliy
Remove unnesessary casts from void*. Signed-off-by: Kulikov Vasiliy <segooon@gmail.com> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-07-08Staging: vme: vme_tsi148: remove casts from void*Kulikov Vasiliy
Remove unnesessary casts from void*. Signed-off-by: Kulikov Vasiliy <segooon@gmail.com> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18Staging: vme: bridges: Add missing unlocksJulia Lawall
Add a spin_unlock and mutex_unlock missing on the error path. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression E1; @@ * spin_lock(E1,...); <+... when != E1 if (...) { ... when != E1 * return ...; } ...+> * spin_unlock(E1,...); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-18Staging: vme: devices: vme_user.c: Fix checkpatch.pl issues.Nanakos Chrysostomos
Fix resolves checkpatch.pl issues for vme_user.c file. Signed-off-by: Nanakos Chrysostomos <nanakos@wired-net.gr> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-06-04staging: Use GFP_ATOMIC when a lock is heldJulia Lawall
In each case, the containing function is only called from one place, where a spin lock is held. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @gfp exists@ identifier fn; position p; @@ fn(...) { ... when != spin_unlock when any GFP_KERNEL@p ... when any } @locked@ identifier gfp.fn; @@ spin_lock(...) ... when != spin_unlock fn(...) @depends on locked@ position gfp.p; @@ - GFP_KERNEL@p + GFP_ATOMIC // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Cc: Jonathan Cameron <jic23@cam.ac.uk> Cc: Marek Lindner <lindner_marek@yahoo.de> Cc: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-21Merge staging-next tree into Linus's latest versionGreg Kroah-Hartman
Conflicts: drivers/staging/arlan/arlan-main.c drivers/staging/comedi/drivers/cb_das16_cs.c drivers/staging/cx25821/cx25821-alsa.c drivers/staging/dt3155/dt3155_drv.c drivers/staging/hv/hv.c drivers/staging/netwave/netwave_cs.c drivers/staging/wavelan/wavelan.c drivers/staging/wavelan/wavelan_cs.c drivers/staging/wlags49_h2/wl_cs.c This required a bit of hand merging due to the conflicts that happened in the later .34-rc releases, as well as some staging driver changing coming in through other trees (v4l and pcmcia). Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-14Staging: Use kcalloc or kzallocJulia Lawall
Use kcalloc or kzalloc rather than the combination of kmalloc and memset. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression x,y,flags; statement S; type T; @@ x = - kmalloc + kcalloc ( - y * sizeof(T), + y, sizeof(T), flags); if (x == NULL) S -memset(x, 0, y * sizeof(T)); @@ expression x,size,flags; statement S; @@ -x = kmalloc(size,flags); +x = kzalloc(size,flags); if (x == NULL) S -memset(x, 0, size); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk>
2010-05-11Staging: Drop memory allocation castJulia Lawall
Drop cast on the result of kmalloc and similar functions. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ type T; @@ - (T *) (\(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\)(...)) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-11Staging: vme: declare vme_calc_slot() as staticBill Pemberton
vme_calc_slot() is not used anywhere other than vme.c so it should be declared as static. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Cc: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-11Staging: vme: declare vme_bus_num_mtx staticBill Pemberton
Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Cc: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-11Staging: vme: Correct checkpatch errorsMartyn Welch
Correct numerous checkpatch errors in the vme driver. Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-11Staging: vme: Use dev_err rather than printkMartyn Welch
Replace instances of printk with dev_err where possible. Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-11Staging: push down BKL into ioctl functionsArnd Bergmann
Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Frederic Weisbecker <fweisbec@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>