summaryrefslogtreecommitdiffstats
path: root/drivers/staging/axis-fifo
Commit message (Collapse)AuthorAgeFilesLines
* staging: axis-fifo: Fix indentationUri Arev2024-04-091-5/+5
| | | | | | | | | | | Warning reported by checkpatch.pl script: CHECK: Alignment should match open parenthesis Signed-off-by: Uri Arev <me@wantyapps.xyz> Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com> Link: https://lore.kernel.org/r/20240305211416.755911-1-me@wantyapps.xyz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Use sysfs_emit()Christophe JAILLET2024-02-171-6/+1
| | | | | | | | | | | | sysfs_read() is anly called from _show() functions declared by DEVICE_ATTR_RW(). Using sysfs_emit() is the preferred style and here, it saves a useless copy and a temporary buffer in the stack. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Link: https://lore.kernel.org/r/588327734f374b5f5cb5c4d5725d884fdc83663e.1707654406.git.christophe.jaillet@wanadoo.fr Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: Explicitly include correct DT includesRob Herring2023-07-271-4/+2
| | | | | | | | | | | | | | | | | | | The DT of_device.h and of_platform.h date back to the separate of_platform_bus_type before it as merged into the regular platform bus. As part of that merge prepping Arm DT support 13 years ago, they "temporarily" include each other. They also include platform_device.h and of.h. As a result, there's a pretty much random mix of those include files used throughout the tree. In order to detangle these headers and replace the implicit includes with struct declarations, users need to explicitly include the correct includes. Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> # tegra-video Acked-by: Parthiban Veerasooran <parthiban.veerasooran@microchip.com> Acked-by: Alex Elder <elder@linaro.org> Link: https://lore.kernel.org/r/20230714175002.4064428-1-robh@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Use devm_platform_get_and_ioremap_resource()Yangtao Li2023-07-271-10/+2
| | | | | | | | | | Convert platform_get_resource(), devm_ioremap_resource() to a single call to devm_platform_get_and_ioremap_resource(), as this is exactly what this function does. Signed-off-by: Yangtao Li <frank.li@vivo.com> Link: https://lore.kernel.org/r/20230704095543.32812-1-frank.li@vivo.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* axis-fifo: remove the unnecessary dev_info()Prathu Baronia2023-06-171-3/+0
| | | | | | | | | | This dev_info() statement is not needed since drivers need to be quiet under normal operation and its not a good idea to print addresses in kernel log. Signed-off-by: Prathu Baronia <prathubaronia2011@gmail.com> Message-ID: <20230616152602.33232-2-prathubaronia2011@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Convert to platform remove callback returning voidUwe Kleine-König2023-04-031-4/+2
| | | | | | | | | | | | | | | | | The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Link: https://lore.kernel.org/r/20230403154014.2564054-2-u.kleine-koenig@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: initialize timeouts in init onlyKhadija Kamran2023-03-171-11/+17
| | | | | | | | | | | | | | | | | | | | | Initialize the module parameters, read_timeout and write_timeout once in init(). Module parameters can only be set once and cannot be modified later, so we don't need to evaluate them again when passing the parameters to wait_event_interruptible_timeout(). Convert datatype of {read,write}_timeout from 'int' to 'long int' because implicit conversion of 'long int' to 'int' in statement '{read,write}_timeout = MAX_SCHEDULE_TIMEOUT' results in an overflow. Change format specifier for {read,write}_timeout from %i to %li. Reviewed-by: Fabio M. De Francesco <fmdefrancesco@gmail.com> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Khadija Kamran <kamrankhadijadj@gmail.com> Link: https://lore.kernel.org/r/ZBN3XAsItCiTk7CV@khadija-virtual-machine Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Use platform_get_irq() to get the interruptLad Prabhakar2021-12-301-8/+3
| | | | | | | | | | | | | | | platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static allocation of IRQ resources in DT core code, this causes an issue when using hierarchical interrupt domains using "interrupts" property in the node as this bypasses the hierarchical setup and messes up the irq chaining. In preparation for removal of static setup of IRQ resource from DT core code use platform_get_irq(). Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Link: https://lore.kernel.org/r/20211224161334.31123-4-prabhakar.mahadev-lad.rj@bp.renesas.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: convert to use miscdeviceGreg Kroah-Hartman2021-09-131-62/+26
| | | | | | | | | | | | Using a struct class, a cdev, and another device just for a single minor device is total overkill. Just use a dynamic misc device instead, saving lots of logic and memory. Cc: Jacob Feder <jacobsfeder@gmail.com> Cc: Lee Jones <lee.jones@linaro.org> Cc: Muhammad Usama Anjum <musamaanjum@gmail.com> Link: https://lore.kernel.org/r/YTdPvBgKW6cKYrvb@kroah.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: axis-fifo: Fix function naming in the documentationLee Jones2021-05-101-1/+1
| | | | | | | | | | | | | Fixes the following W=1 kernel build warning(s): drivers/staging/axis-fifo/axis-fifo.c:356: warning: expecting prototype for axis_fifo_write(). Prototype was for axis_fifo_read() instead Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jacob Feder <jacobsfeder@gmail.com> Cc: linux-staging@lists.linux.dev Signed-off-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20210414181129.1628598-52-lee.jones@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: axis-fifo: Fix some formatting issuesLee Jones2021-05-101-8/+8
| | | | | | | | | | | | | | | | | | | | | | Fixes the following W=1 kernel build warning(s): drivers/staging/axis-fifo/axis-fifo.c:356: warning: Function parameter or member 'f' not described in 'axis_fifo_read' drivers/staging/axis-fifo/axis-fifo.c:356: warning: Function parameter or member 'buf' not described in 'axis_fifo_read' drivers/staging/axis-fifo/axis-fifo.c:356: warning: Function parameter or member 'len' not described in 'axis_fifo_read' drivers/staging/axis-fifo/axis-fifo.c:356: warning: Function parameter or member 'off' not described in 'axis_fifo_read' drivers/staging/axis-fifo/axis-fifo.c:356: warning: expecting prototype for axis_fifo_write(). Prototype was for axis_fifo_read() instead drivers/staging/axis-fifo/axis-fifo.c:478: warning: Function parameter or member 'f' not described in 'axis_fifo_write' drivers/staging/axis-fifo/axis-fifo.c:478: warning: Function parameter or member 'buf' not described in 'axis_fifo_write' drivers/staging/axis-fifo/axis-fifo.c:478: warning: Function parameter or member 'len' not described in 'axis_fifo_write' drivers/staging/axis-fifo/axis-fifo.c:478: warning: Function parameter or member 'off' not described in 'axis_fifo_write' Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: "John B. Wyatt IV" <jbwyatt4@gmail.com> Cc: Jacob Feder <jacobsfeder@gmail.com> Cc: linux-staging@lists.linux.dev Signed-off-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20210414181129.1628598-37-lee.jones@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: remove redundant dev_err callMuhammad Usama Anjum2021-04-081-1/+0
| | | | | | | | | devm_ioremap_resource() prints error message in itself. Remove the dev_err call to avoid redundant error message. Signed-off-by: Muhammad Usama Anjum <musamaanjum@gmail.com> Link: https://lore.kernel.org/r/20210407161202.GA1505056@LEGION Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Fix parenthesis alignmentJohn B. Wyatt IV2020-04-131-5/+7
| | | | | | | | | | Fix 2 parenthesis alignment issues. Reported by checkpatch. Signed-off-by: John B. Wyatt IV <jbwyatt4@gmail.com> Link: https://lore.kernel.org/r/20200402015008.728612-1-jbwyatt4@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: replace spinlock with mutexQuentin Deslandes2020-01-221-59/+101
| | | | | | | | | | | | | | | | | | | Following the device's documentation guidance, reading a packet from the device or writing a packet to it must be atomic. Previously, only reading device's vacancy (before writing on it) or occupancy (before reading from it) was locked. Hence, effectively reading the packet or writing the packet wasn't locked at all. However, reading a packet (and writing one, to a lesser extent) requires to read 3 different registers in a specific order, without missing one or else we should reset the device. This patch fixes the device's locking mechanism on the FIFO character device. As the device was using copy_from_user() and copy_to_user(), we need to replace spinlocks with mutexes. Signed-off-by: Quentin Deslandes <quentin.deslandes@itdev.co.uk> Link: https://lore.kernel.org/r/20200121103958.12941-1-quentin.deslandes@itdev.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: add unspecified HAS_IOMEM dependencyBrendan Higgins2019-12-171-1/+1
| | | | | | | | | | | | | | | | Currently CONFIG_XIL_AXIS_FIFO=y implicitly depends on CONFIG_HAS_IOMEM=y; consequently, on architectures without IOMEM we get the following build error: ld: drivers/staging/axis-fifo/axis-fifo.o: in function `axis_fifo_probe': drivers/staging/axis-fifo/axis-fifo.c:809: undefined reference to `devm_ioremap_resource' Fix the build error by adding the unspecified dependency. Reported-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: Brendan Higgins <brendanhiggins@google.com> Link: https://lore.kernel.org/r/20191211192742.95699-7-brendanhiggins@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: remove unused pointer to memory resourceQuentin Deslandes2019-11-031-7/+4
| | | | | | | | Remove unused resource pointer from the device's internal structure. Signed-off-by: Quentin Deslandes <quentin.deslandes@itdev.co.uk> Link: https://lore.kernel.org/r/20191101214232.16960-4-quentin.deslandes@itdev.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: request resources using managed functionsQuentin Deslandes2019-11-031-32/+13
| | | | | | | | | Request device's resources (memory, interrupt...) using managed function. Signed-off-by: Quentin Deslandes <quentin.deslandes@itdev.co.uk> Link: https://lore.kernel.org/r/20191101214232.16960-3-quentin.deslandes@itdev.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: avoid parsing ignored device tree propertiesQuentin Deslandes2019-11-032-191/+74
| | | | | | | | | | | | | | Some properties were parsed from the device tree and then ignored by the driver. Some would return an error if absent from the device tree, then return an error if they were found because they are unsupported by the driver. Avoid parsing unused properties and clearly explain in the documentation the ignored / unsupported properties. Signed-off-by: Quentin Deslandes <quentin.deslandes@itdev.co.uk> Link: https://lore.kernel.org/r/20191101214232.16960-2-quentin.deslandes@itdev.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: remove redundant 'default n' from KconfigBartlomiej Zolnierkiewicz2019-04-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'default n' is the default value for any bool or tristate Kconfig setting so there is no need to write it explicitly. Also since commit f467c5640c29 ("kconfig: only write '# CONFIG_FOO is not set' for visible symbols") the Kconfig behavior is the same regardless of 'default n' being present or not: ... One side effect of (and the main motivation for) this change is making the following two definitions behave exactly the same: config FOO bool config FOO bool default n With this change, neither of these will generate a '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied). That might make it clearer to people that a bare 'default n' is redundant. ... Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Add elaborate description in KconfigMoses Christopher2019-04-161-2/+4
| | | | | | | | - The Xilinx AXI-Stream FIFO IP core driver description is elaborated. - References: Xilinx PG080 document, axis-fifo.txt Signed-off-by: Moses Christopher <moseschristopherb@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: add missing SPDX lines to Makefile filesGreg Kroah-Hartman2019-04-031-0/+1
| | | | | | | | | There are a few remaining drivers/staging/*/Makefile files that do not have SPDX identifiers in them. Add the correct GPL-2.0 identifier to them to make scanning tools happy. Reviewed-by: Mukesh Ojha <mojha@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: add missing SPDX lines to Kconfig filesGreg Kroah-Hartman2019-04-031-0/+1
| | | | | | | | There are a few remaining drivers/staging/*/Kconfig files that do not have SPDX identifiers in them. Add the correct GPL-2.0 identifier to them to make scanning tools happy. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: add CONFIG_OF dependencyArnd Bergmann2019-03-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | When building without CONFIG_OF, the compiler loses track of the flow control in axis_fifo_probe(), and thinks that many variables are used without an initialization even though we actually leave the function before the first use: drivers/staging/axis-fifo/axis-fifo.c: In function 'axis_fifo_probe': drivers/staging/axis-fifo/axis-fifo.c:900:5: error: 'rxd_tdata_width' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rxd_tdata_width != 32) { ^ drivers/staging/axis-fifo/axis-fifo.c:907:5: error: 'txd_tdata_width' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (txd_tdata_width != 32) { ^ drivers/staging/axis-fifo/axis-fifo.c:914:5: error: 'has_tdest' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (has_tdest) { ^ drivers/staging/axis-fifo/axis-fifo.c:919:5: error: 'has_tid' may be used uninitialized in this function [-Werror=maybe-uninitialized] When CONFIG_OF is set, this does not happen, and since the driver cannot work without it, just add that option as a Kconfig dependency. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Split line to stay in 80 characters.Cristian Sicilia2018-11-201-1/+2
| | | | | | | The line is split up to stay in 80 characters- Signed-off-by: Cristian Sicilia <sicilia.cristian@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: remove duplicated include from axis-fifo.cYueHaibing2018-10-091-2/+0
| | | | | | | Remove duplicated include. Signed-off-by: YueHaibing <yuehaibing@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: Remove parentheses in axis-fifo.cIoannis Valasakis2018-10-091-10/+10
| | | | | | | | | | | | | staging: axis-fifo: remove parentheses in axis-fifo.c Remove parentheses from the end of line and conform to the coding style guidelines. Reported by checkpatch. Add an extra space to the function arguments to fix indentation. Signed-off-by: Ioannis Valasakis <code@wizofe.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: add error handling of class_create()Alexey Khoroshilov2018-10-021-0/+2
| | | | | | | Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: fix platform_no_drv_owner.cocci warningskbuild test robot2018-07-291-1/+0
| | | | | | | | | | | | | drivers/staging/axis-fifo/axis-fifo.c:1081:3-8: No need to set .owner here. The core will do it. Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Fixes: 4a965c5f89de ("staging: add driver for Xilinx AXI-Stream FIFO v4.1 IP core") CC: Jacob Feder <jacobsfeder@gmail.com> Signed-off-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: axis-fifo: fix return value check in axis_fifo_probe()Wei Yongjun2018-07-281-2/+2
| | | | | | | | | | In case of error, the function device_create() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Fixes: 4a965c5f89de ("staging: add driver for Xilinx AXI-Stream FIFO v4.1 IP core") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* staging: add driver for Xilinx AXI-Stream FIFO v4.1 IP coreJacob Feder2018-07-245-0/+1207
This IP core has read and write AXI-Stream FIFOs, the contents of which can be accessed from the AXI4 memory-mapped interface. This is useful for transferring data from a processor into the FPGA fabric. The driver creates a character device that can be read/written to with standard open/read/write/close. See Xilinx PG080 document for IP details. https://www.xilinx.com/support/documentation/ip_documentation/axi_fifo_mm_s/v4_1/pg080-axi-fifo-mm-s.pdf The driver currently supports only store-forward mode with a 32-bit AXI4 Lite interface. DOES NOT support: - cut-through mode - AXI4 (non-lite) Signed-off-by: Jacob Feder <jacobsfeder@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>