summaryrefslogtreecommitdiffstats
path: root/drivers/staging/nvec/nvec.c
Commit message (Collapse)AuthorAgeFilesLines
* mfd: core: Push irqdomain mapping out into devicesMark Brown2012-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | | Currently the MFD core supports remapping MFD cell interrupts using an irqdomain but only if the MFD is being instantiated using device tree and only if the device tree bindings use the pattern of registering IPs in the device tree with compatible properties. This will be actively harmful for drivers which support non-DT platforms and use this pattern for their DT bindings as it will mean that the core will silently change remapping behaviour and it is also limiting for drivers which don't do DT with this particular pattern. There is also a potential fragility if there are interrupts not associated with MFD cells and all the cells are omitted from the device tree for some reason. Instead change the code to take an IRQ domain as an optional argument, allowing drivers to take the decision about the parent domain for their interrupts. The one current user of this feature is ab8500-core, it has the domain lookup pushed out into the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* Merge tag 'staging-3.6-rc1' of ↵Linus Torvalds2012-07-261-47/+30Star
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging tree patches from Greg Kroah-Hartman: "Here's the big staging tree merge for the 3.6-rc1 merge window. There are some patches in here outside of drivers/staging/, notibly the iio code (which is still stradeling the staging / not staging boundry), the pstore code, and the tracing code. All of these have gotten acks from the various subsystem maintainers to be included in this tree. The pstore and tracing patches are related, and are coming here as they replace one of the android staging drivers. Otherwise, the normal staging mess. Lots of cleanups and a few new drivers (some iio drivers, and the large csr wireless driver abomination.) Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" Fixed up trivial conflicts in drivers/staging/comedi/drivers/s626.h and drivers/staging/gdm72xx/netlink_k.c * tag 'staging-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1108 commits) staging: csr: delete a bunch of unused library functions staging: csr: remove csr_utf16.c staging: csr: remove csr_pmem.h staging: csr: remove CsrPmemAlloc staging: csr: remove CsrPmemFree() staging: csr: remove CsrMemAllocDma() staging: csr: remove CsrMemCalloc() staging: csr: remove CsrMemAlloc() staging: csr: remove CsrMemFree() and CsrMemFreeDma() staging: csr: remove csr_util.h staging: csr: remove CsrOffSetOf() stating: csr: remove unneeded #includes in csr_util.c staging: csr: make CsrUInt16ToHex static staging: csr: remove CsrMemCpy() staging: csr: remove CsrStrLen() staging: csr: remove CsrVsnprintf() staging: csr: remove CsrStrDup staging: csr: remove CsrStrChr() staging: csr: remove CsrStrNCmp staging: csr: remove CsrStrCmp ...
| * staging: nvec: rename led driver to board specific paz00 driverMarc Dietrich2012-06-251-1/+1
| | | | | | | | | | | | | | | | | | The led driver used OEM commands which are not part of the nvec protocol definition. Therefore it is renamed to nvec_paz00 to reflect that it only applies to PAZ00 board based devices. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * staging: nvec: cleanup powermanagement callbacksMarc Dietrich2012-06-251-10/+10
| | | | | | | | | | | | | | Simplify powermanagement initialization by using pm_ops macro. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * staging: nvec: cleanup driver registrationMarc Dietrich2012-06-251-6/+1Star
| | | | | | | | | | | | | | | | This patch simplifies code by using the module_platform_driver macro. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * staging: nvec: use dev_warn instead of printkMarc Dietrich2012-06-251-1/+3
| | | | | | | | | | | | | | Replace a printk in nvec core driver with dev_warn. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * staging: nvec: convert to devm_ functionsMarc Dietrich2012-06-251-29/+15Star
| | | | | | | | | | | | | | | | This patch cleanups the nvec and its childs by replacing calls to resource allocations by their devm_* equivalents. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | staging: nvec: add clk_prepare/clk_unpreparePrashant Gaikwad2012-06-121-4/+4
|/ | | | | | | | | | | Use clk_prepare/clk_unprepare as required by the generic clk framework. Cc: gregkh@linuxfoundation.org Cc: ac100@lists.launchpad.net Cc: devel@driverdev.osuosl.org Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Marc Dietrich <marvin24@gmx.de>
* staging: nvec: Use gpio_request_one() instead of gpio_request()Julian Andres Klode2012-01-311-7/+6Star
| | | | | | | | This saves us some calls and thus makes the code shorter and nicer. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Fix typo s/I2C_SL_NEWL/I2C_SL_NEWSL/Julian Andres Klode2012-01-311-3/+3
| | | | | | | | The constant I2C_SL_NEWL meant "new slave", but the S was missing. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: add device tree supportMarc Dietrich2011-11-271-2/+28
| | | | | | | | | | | | | This adds device tree support to the nvec driver. By using this method it is no longer necessary to specify platform data through a board file. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Acked-by: Stephen Warren <swarren@nvidia.com> Cc: Julian Andres Klode <jak@jak-linux.org> Cc: Grant Likely <grant.likely@secretlab.ca> Acked-by: Olof Johansson <olof@lixom.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging/nvec: fix compilation error in nvec.cMarc Dietrich2011-10-181-0/+1
| | | | | | | | This fixes a compilation error in nvec.c due to the missing module.h include. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Cc: Julian Andres Klode <jak@jak-linux.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: send suspend messages synchronouslyMarc Dietrich2011-09-301-2/+8
| | | | | | | | | | | The suspend commands need to be sent using the synchronous method, otherwise the power gets disabled before the messages are transferred. Signed-off-by: Marc Dietrich <marvin24@gmx.de> [jak@jak-linux.org: Rewrote commit message] Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Add a udelay(100) to nvec_interruptJulian Andres Klode2011-09-301-0/+9
| | | | | | | | | | As the comment indicates, adding that udelay seems to improve the stability of the communication, although it is not known why this is the case. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Add missing includes and reorder themJulian Andres Klode2011-09-301-13/+11Star
| | | | | | | | | Add the includes that are currently missing in nvec.h and nvec.c and reorder them alphabetically. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Add battery quirk to ignore incomplete responsesJulian Andres Klode2011-09-301-0/+5
| | | | | | | | | | | | The nvec_power system polls nvec for battery information. In some cases, that part seems to be overloaded and unable to respond fast in which case it sends an incomplete response. We need to mark the transfer as completed, though, in order to prevent endless retries which can kill nvec. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Reject incomplete messagesJulian Andres Klode2011-09-301-1/+6
| | | | | | | | | | Reject incomplete messages, causing the request to be transmitted again. This should fix various problems out there. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Handle filled up RX buffersJulian Andres Klode2011-09-301-0/+5
| | | | | | | | | | If no RX buffer is available in state 1, jump to state 0 again. This will produce an incredible amount of warnings, but it is not supposed to happen anyway. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Allow TX buffers only in the upper 75% of the poolJulian Andres Klode2011-09-301-6/+25
| | | | | | | | | | | | | | | | | Allow TX buffers to be allocated only in the upper 75% of the pool to avoid a completely filled buffer preventing the driver from processing responses. This also improves performance, as RX allocations do not require checking buffers allocated for TX unless there are more than 16 incoming messages -- which is highly unlikely. An earlier version used the lower 75% for TX messages, but that was considered to be not that effective due to the overlaps of RX and TX buffers mentioned above. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Export nvec_msg_free() to clientsJulian Andres Klode2011-09-301-2/+4
| | | | | | | | | | Client code wishing to make use of nvec_write_sync() must have a way to free the returned pointer, otherwise we run out of poool memory fairly soon. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Move implementation-only macros out of the headerJulian Andres Klode2011-09-301-0/+20
| | | | | | | | | Those macros are needed only for implementation purposes and do not have any use for other code wishing to use nvec. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Document public and private APIJulian Andres Klode2011-09-301-2/+107
| | | | | | | | | Add kernel-doc comments describing the functions and structs we currently have. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Have nvec_write_async() return -ENOMEM on OOMJulian Andres Klode2011-09-301-2/+9
| | | | | | | | | | Change nvec_write_async() to return an integer, 0 by default, a negative error on failure. Change nvec_write_sync() to check the return value and abort if it is negative. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Add myself to copyright and authors listJulian Andres Klode2011-09-301-0/+1
| | | | | | | | | | | Forgotten in the last commit(s) which contained the copyrightable material, so let's add it now. I believe that only my nvec.c contributions are copyrightable, nvec.h is just interface naming, so does not deserve that yet. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Do not print free message for tx_scratchJulian Andres Klode2011-09-301-1/+2
| | | | | | | | | | | The scratch area is not part of the pool and thus gets no allocation message. Printing a free message would be confusing, and the pointer subtraction would be undefined behavior. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Rewrite the interrupt handlerJulian Andres Klode2011-09-301-114/+275
| | | | | | | | | | | | | | | Rewrite the interrupt handler to use a state machine similar to that found in the various kernels for the Advent Vega. This also changes the code to use the new functions introduced in the previous commits. This also merges the rewrite sent in August 2011 by Marc Dietrich, and thus also includes code by him. His original patch can be found on the mailing list. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Add is_event() and size() functions for nvec_msgJulian Andres Klode2011-09-301-0/+31
| | | | | | | | | | Add functions nvec_msg_is_event() and nvec_msg_size() which do just what the say: tell whether the message is an event, and getting the size of the message. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Introduce nvec_gpio_set_value()Julian Andres Klode2011-09-301-0/+7
| | | | | | | | | | Introduce nvec_gpio_set_value(), which works like gpio_set_value(), but also creates a debugging message, if that's enabled. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Introduce new internal API for msg alloc/freeJulian Andres Klode2011-09-301-0/+23
| | | | | | | | | | Introduce two new functions nvec_msg_alloc() and nvec_msg_free() that allocate and free message buffers from the internal pool of messages. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: add LED supportIlya Petrov2011-09-301-0/+4
| | | | | | | | | | | | | | This patch adds support for LEDs connect to a nvec. A single brightness property is exported to sysfs. LEDs are selected via bitfields in the brightness value. Also the blinking behavior is selected through this method. Vendors may use different values for different HW designs. Signed-off-by: Ilya Petrov <ilya.muromec@gmail.com> Signed-off-by: Marc Dietrich <marvin24@gmx.de> [jak@jak-linux.org: Fixed checkpatch warnings] Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: fix unmute of speakersMarc Dietrich2011-09-301-1/+1
| | | | | | | | | The ec command used was for muting, not unmuting. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: rework the nvec slave initMarc Dietrich2011-09-301-8/+21
| | | | | | | | | | | Rework the tegra slave controller init to look more like in tegra-i2c.c. This makes the nvec init reliable. Also add de-init of the slave to be used during suspend. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: Use print_hex_dump() where appropriateMarc Dietrich2011-09-301-13/+7Star
| | | | | | | | | Split of the previous patch and the next by Marc, as that patch is not strictly a coding style fix only. Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: coding style fixes / add copyright noticeMarc Dietrich2011-09-301-94/+97
| | | | | | | | | | This patch fixes coding style and adds copyright notices. Signed-off-by: Marc Dietrich <marvin24@gmx.de> [jak@jak-linux.org: Merge later cleanup into that patch] Signed-off-by: Julian Andres Klode <jak@jak-linux.org> Acked-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* staging: nvec: convert to use platform register and mfdcellsMarc Dietrich2011-08-241-69/+99
| | | | | | | | | This patch converts the nvec to use mfd cells and improves the registration of the platform driver. The child drivers are also converted to use mfd cells and platform registration. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* treewide: remove duplicate includesVitaliy Ivanov2011-06-201-1/+0Star
| | | | | | | | Many stupid corrections of duplicated includes based on the output of scripts/checkincludes.pl. Signed-off-by: Vitaliy Ivanov <vitalivanov@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* Staging: initial version of the nvec driverMarc Dietrich2011-05-201-0/+468
This is an implementation of a NVidia compliant embedded controller protocol driver. It is used on some ARM-Tegra boards for device communication. Signed-off-by: Marc Dietrich <marvin24@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>