aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* RDMA: Improve include file coding styleDotan Barak2008-07-15
| | | | | | | | Remove subversion $Id lines and improve readability by fixing other coding style problems pointed out by checkpatch.pl. Signed-off-by: Dotan Barak <dotanba@gmail.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/ipath: Simplify code using ARRAY_SIZE() macroRobert P. J. Day2008-07-15
| | | | | Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/mlx4: Optimize QP stampingEli Cohen2008-07-15
| | | | | | | | | | | | | | | The idea is that for QPs with fixed size work requests (eg selective signaling QPs), before stamping the WQE, we read the value of the DS field, which gives the effective size of the descriptor as used in the previous post. Then we stamp only that area, since the rest of the descriptor is already stamped. When initializing the send queue buffer, make sure the DS field is initialized to the max descriptor size so that the subsequent stamping will be done on the entire descriptor area. Signed-off-by: Eli Cohen <eli@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/sa: Fail requests made while creating new SM AHMoni Shoua2008-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch solves a race that occurs after an event occurs that causes the SA query module to flush its SM address handle (AH). When SM AH becomes invalid and needs an update it is handled by the global workqueue. On the other hand this event is also handled in the IPoIB driver by queuing work in the ipoib_workqueue that does multicast joins. Although queuing is in the right order, it is done to 2 different workqueues and so there is no guarantee that the first to be queued is the first to be executed. This causes a problem because IPoIB may end up sending an request to the old SM, which will take a long time to time out (since the old SM is gone); this leads to a much longer than necessary interruption in multicast traffer. The patch sets the SA query module's SM AH to NULL when the event occurs, and until update_sm_ah() is done, any request that needs sm_ah fails with -EAGAIN return status. For consumers, the patch doesn't make things worse. Before the patch, MADs are sent to the wrong SM so the request gets lost. Consumers can be improved if they examine the return code and respond to EAGAIN properly but even without an improvement the situation is not getting worse. Signed-off-by: Moni Levy <monil@voltaire.com> Signed-off-by: Moni Shoua <monis@voltaire.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* RDMA: Fix license textSean Hefty2008-07-15
| | | | | | | | | The license text for several files references a third software license that was inadvertently copied in. Update the license to what was intended. This update was based on a request from HP. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* RDMA/nes: Remove unnecessary memset()Christophe Jaillet2008-07-15
| | | | | | | | | Remove an explicit memset(..., 0, ...) of a 'listener' structure allocated with kzalloc(). Signed-off-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr> Acked-by: Faisal Latif <faisal@neteffect.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
* IB/srp: Remove use of cached P_Key/GID queriesRoland Dreier2008-07-15
| | | | | | | | | | | The SRP initiator is currently using ib_find_cached_pkey() and ib_get_cached_gid() in situations where the uncached ib_find_pkey() and ib_query_gid() functions serve just as well: sleeping is allowed and performance is not an issue. Since we want to eliminate the cached operations in the long term, convert SRP to use the uncached variants. Signed-off-by: Roland Dreier <rolandd@cisco.com>
* firmware: Correct dependency on CONFIG_EXTRA_FIRMWARE_DIRDavid Woodhouse2008-07-14
| | | | | | | | | | | When CONFIG_EXTRA_FIRMWARE_DIR gets changed, the filename in the .S file (which uses .incbin to include the binary) needs to change. When we renamed the BUILTIN_FIRMWARE_DIR option to EXTRA_FIRMWARE_DIR, we forgot to update the manual dependency in firmware/Makefile, so it was depending on a non-existent file in include/config/ Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'for-2.6.27' of git://git.infradead.org/users/dwmw2/firmware-2.6Linus Torvalds2008-07-14
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-2.6.27' of git://git.infradead.org/users/dwmw2/firmware-2.6: (64 commits) firmware: convert sb16_csp driver to use firmware loader exclusively dsp56k: use request_firmware edgeport-ti: use request_firmware() edgeport: use request_firmware() vicam: use request_firmware() dabusb: use request_firmware() cpia2: use request_firmware() ip2: use request_firmware() firmware: convert Ambassador ATM driver to request_firmware() whiteheat: use request_firmware() ti_usb_3410_5052: use request_firmware() emi62: use request_firmware() emi26: use request_firmware() keyspan_pda: use request_firmware() keyspan: use request_firmware() ttusb-budget: use request_firmware() kaweth: use request_firmware() smctr: use request_firmware() firmware: convert ymfpci driver to use firmware loader exclusively firmware: convert maestro3 driver to use firmware loader exclusively ... Fix up trivial conflicts with BKL removal in drivers/char/dsp56k.c and drivers/char/ip2/ip2main.c manually.
| * Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gitDavid Woodhouse2008-07-14
| |\ | | | | | | | | | | | | | | | Conflicts: sound/pci/Kconfig
| | * firmware: convert sb16_csp driver to use firmware loader exclusivelyJaswinder Singh2008-07-14
| | | | | | | | | | | | | | | Signed-off-by: Jaswinder Singh <jaswinder@infradead.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * dsp56k: use request_firmwareJaswinder Singh2008-07-14
| | | | | | | | | | | | | | | Signed-off-by: Jaswinder Singh <jaswinder@infradead.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * edgeport-ti: use request_firmware()Jaswinder Singh2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Firmware blob looks like this... uint8_t MajorVersion uint8_t MinorVersion __le16 BuildNumber uint8_t data[] Signed-off-by: Jaswinder Singh <jaswinder@infradead.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * edgeport: use request_firmware()Jaswinder Singh2008-07-14
| | | | | | | | | | | | | | | | | | | | | Version number provided in first HEX record. Signed-off-by: Jaswinder Singh <jaswinder@infradead.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * vicam: use request_firmware()Jaswinder Singh2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although it wasn't actually using ihex records before, we use the Intel HEX record format for this firmware -- because that gives us a simple way to split it into separate chunks internally as we need, without loading each part as a separate file. Signed-off-by: Jaswinder Singh <jaswinder@infradead.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * dabusb: use request_firmware()David Woodhouse2008-07-14
| | | | | | | | | | | | Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * cpia2: use request_firmware()David Woodhouse2008-07-14
| | | | | | | | | | | | | | | | | | Thanks for Jaswinder Singh for converting the firmware blob itself to ihex. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * ip2: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | Converted with help from Jaswinder Singh Signed-off-by: David Woodhouse <dwmw2@infradead.org> Acked-by: Alan Cox <alan@redhat.com>
| | * firmware: convert Ambassador ATM driver to request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since it had various regions to be loaded to separate addresses, and it wanted to do them in fairly small chunks anyway, switch it to use the new ihex code. Encode the start address in the first record. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Acked-by: Chas Williams <chas@cmf.nrl.navy.mil>
| | * whiteheat: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ti_usb_3410_5052: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * emi62: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * emi26: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * keyspan_pda: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * keyspan: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ttusb-budget: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org>
| | * kaweth: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * smctr: use request_firmware()David Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * firmware: convert ymfpci driver to use firmware loader exclusivelyDavid Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * firmware: convert maestro3 driver to use firmware loader exclusivelyDavid Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * firmware: convert korg1212 driver to use firmware loader exclusivelyDavid Woodhouse2008-07-10
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ihex: Add support for long records to ihex2fw.cDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some drivers could do with using records like Intel HEX, but with each record being larger than 256 bytes. This has been possible in the binary representation (struct ihex_binrec) in the kernel since the beginning -- at least of the the current version of history. But we haven't been able to represent that in the .HEX files which get converted to .fw files. This adds a '-w' option to ihex2fw to make it interpret the first _two_ bytes of each line as the record length, instead of only one byte. And adds makefile rules for %.H16->%.fw which use that. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ihex: add ihex2fw tool for converting HEX files into firmware imagesDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not the straight conversion to binary which objcopy can do for us, but actually representing each record with its original {addr, length}, because some drivers need that information preserved. Fix up 'firmware_install' to be able to build $(hostprogs-y) too. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ihex: request_ihex_firmware() function to load and validate firmwareDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | Provide a helper to load the file and validate it in one call, to simplify error handling in the drivers which are going to use it. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ihex.h: binary representation of ihex recordsDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some devices need their firmware as a set of {address, len, data...} records in some specific order rather than a simple blob. The normal way of doing this kind of thing is 'ihex', which is a text format and not entirely suitable for use in the kernel. This provides a binary representation which is very similar, but much more compact -- and a helper routine to skip to the next record, because the alignment constraints mean that everybody will screw it up for themselves otherwise. Also a helper function which can verify that a 'struct firmware' contains a valid set of ihex records, and that following them won't run off the end of the loaded data. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * firmware: Add firmware installation to modules_install, add firmware_installDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For 'make modules_install', install any firmware required by the modules which are being installed. Also add a 'make firmware_install' target which doesn't depend on the configuration, but installs _all_ available in-kernel-tree firmware into $(INSTALL_FW_PATH), which defaults to /lib/firmware. This is intended for distributors to make arch-independent (and config-independent) packages containing firmware. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * firmware: Add CONFIG_FIRMWARE_IN_KERNEL option.David Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will control whether we build firmware into the kernel image for _every_ driver which we convert to request_firmware(), to avoid a proliferation of 'CONFIG_XXX_FIRMWARE' options for each one. Default to 'y' for now, which is the wrong thing to do but people seem to be insisting on it and refusing to even review patches until it's done. And it does preserve the existing behaviour for built-in drivers. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * firmware: Add CONFIG_EXTRA_FIRMWARE optionDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows arbitrary firmware files to be included in the static kernel where the firmware loader can find them without requiring userspace to be alive. (Updated and CONFIG_EXTRA_FIRMWARE_DIR added with lots of help from Johannes Berg). Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
| | * firmware: allow firmware files to be built into kernel imageDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some drivers have their own hacks to bypass the kernel's firmware loader and build their firmware into the kernel; this renders those unnecessary. Other drivers don't use the firmware loader at all, because they always want the firmware to be available. This allows them to start using the firmware loader. A third set of drivers already use the firmware loader, but can't be used without help from userspace, which sometimes requires an initrd. This allows them to work in a static kernel. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * firmware: make fw->data constDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for supporting firmware files linked into the static kernel, make fw->data const to ensure that users aren't modifying it (so that we can pass a pointer to the original in-kernel copy, rather than having to copy it). Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * Fix a const pointer usage warning in the Digigram miXart soundcard driverDavid Howells2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a const pointer usage warning in the Digigram miXart soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier is part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * Fix a const pointer usage warning in the Digigram pcxhr soundcard driverDavid Howells2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a const pointer usage warning in the Digigram pcxhr compatible soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier is part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * Fix a const pointer error in the Conexant cx23418 MPEG encoder driverDavid Howells2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | Fix a const pointer to non-const pointer assignment error in the Conexant cx23418 MPEG encoder driver. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * Fix a const assignment in moxa_load_fw()David Howells2008-07-10
| | | | | | | | | | | | | | | | | | | | | Fix an assignment of a const pointer to a non-const pointer in moxa_load_fw(). Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * Fix a const pointer usage warning in the Digigram VX soundcard driverDavid Howells2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a const pointer usage warning in the Digigram VX soundcard driver. A const pointer is being passed to copy_from_user() to load the firmware into. This is okay in this case because the function has allocated the firmware struct itself, but the const qualifier will be part of the firmware struct - so the patch casts the const away. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
| | * isight: treat firmware data as constgregkh@suse.de2008-07-10
| | | | | | | | | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * x86 microcode: firmware data is constGreg Kroah-Hartman2008-07-10
| | | | | | | | | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * dell_rbu: firmware data is constGreg Kroah-Hartman2008-07-10
| | | | | | | | | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * ymfpci: treat firmware data as constDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | Standardise both in-kernel and loaded firmware to be stored as little-endian instead of host-endian. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| | * maestro3: treat firmware data as constDavid Woodhouse2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The maestro3 driver is byte-swapping its firmware to be host-endian in advance, when it doesn't seem to be necessary -- we could just use le16_to_cpu() as we load it. Doing that means that we need to switch the in-tree firmware to be little-endian too. Take the least intrusive way of doing this, which is to switch the existing snd_m3_convert_from_le() function to convert _to_ little-endian instead, and use it on the in-tree firmware instead of the loaded firmware. It's a bit suboptimal but doesn't matter much right now because we're about to remove the special cases for the in-tree version anyway. Signed-off-by: David Woodhouse <dwmw2@infradead.org>