Age | Commit message (Collapse) | Author |
|
Improve module help messages and logging operations
in debug mode.
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
(cherry picked from commit 912e48ef088c1f39e8534ecbdb4d1342baa733a8)
Conflicts:
drivers/watchdog/imx8_wdt.c
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
1. Fix this compilation error:
/workdir/oe/tmp-glibc/work-shared/verdin-imx8mm/kernel-source/drivers/
rpmsg/virtio_rpmsg_bus.c:1106:23: error: redeclaration of 'newch'
with no linkage
struct rpmsg_device *newch;
^~~~~
/workdir/oe/tmp-glibc/work-shared/verdin-imx8mm/kernel-source/drivers/
rpmsg/virtio_rpmsg_bus.c:1101:23: note: previous declaration of
'newch' was here
struct rpmsg_device *newch;
2. Fix warnings that are reproduced when RPMsg char device support is
disabled.
Fixes: 1172ee2e ("rpmsg: virtio rpmsg: Add RPMsg char driver support")
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
(cherry picked from commit 1f734be74f1d17ac072edbb6d333cd5041157ef0)
|
|
Ordering of stuff in lpspi probe was a little off.
- num_chipselect gets set with devm_spi_register_controller.
- devm_spi_register_controller needs data that gets set into
controller variable
Order stuff appropriate so num_chipselect gets set before it is used.
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
(cherry picked from commit a22e9000e304c75472c294abf5ba17a66d399fba)
|
|
virtio rpmsg was not implemented to use RPMsg char driver.
Each virtio ns announcement will create a new RPMsg device which
is supposed to bound to a RPMsg driver. It doesn't support
dynamic endpoints with name service per RPMsg device.
With RPMsg char driver, you can have multiple endpoints per
RPMsg device.
Here is the change from this patch:
* Introduce a macro to indicate if want to use RPMsg char driver
for virtio RPMsg. The RPMsg device can either be bounded to
a simple RPMsg driver or the RPMsg char driver.
* Create Virtio RPMsg char device when the virtio RPMsg driver is
probed.
* when there is a remote service announced, keep it in the virtio
proc remote services list.
* when there is an endpoint created, bind it to a remote service
from the remote services list. If the service doesn't exist yet,
create one and mark the service address as ANY.
That patch ported to our 4.14 kernel + additional fixes added [1].
Example of usage from userspace app:
```
char data_buf [] = {'a', 'b', 'c', 'd', '\0'};
struct rpmsg_endpoint_info ept_info = {"rpmsg-openamp-demo-channel", 0x2, 0x1};
int fd = open("/dev/rpmsg_ctrl0", O_RDWR);
/* create endpoint interface */
ioctl(fd, RPMSG_CREATE_EPT_IOCTL, &ept_info);
/* create endpoint */
int fd_ept = open("/dev/rpmsg0", O_RDWR);
/* receive data from remote device */
read(fd_ept, &data_buf, sizeof(data_buf));
/* send data to remote device */
write(fd_ept, &data_buf, sizeof(data_buf));
/* destroy endpoint */
ioctl(fd_ept, RPMSG_DESTROY_EPT_IOCTL);
close(fd_ept);
close(fd);
```
[1] https://patchwork.kernel.org/patch/10145779/
Signed-off-by: Wendy Liang <jliang@xilinx.com>
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
(cherry picked from commit 06ab53a559eddc27d0c45e4935a65a19820714a2)
|
|
The LDO have a Soft-Start feature. Add enable_time to all LDOs to
account for that.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit b567a056ed74d8c9700f6dc5e838d3e22e7068bf)
Conflicts:
drivers/regulator/bd71837-regulator.c
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Some CRTC drivers use and evaluate this information and if missing
print a warning.
| [ 248.956112] imx_sec_dsim_drv 32e10000.mipi_dsi: no bus formats assigned by connector
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 17e26f89a107a2844b9091bd937225b8b06fa4d0)
|
|
This allows to have a clock on clko even if the controller is
disabled.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 417c1031677a958c5c936c243a83fc933c0cfda3)
|
|
The current implementation uses the clko pin always as a clock out.
Implement the binding documentation and use the pin as a start of frame
indication when microchip,clock-out-div is set to 0.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit ccf8ae1f467602baedd2b0c11022c00a6b2e4f8f)
|
|
If CONFIG_CAN_MCP25XXFD_DEBUG_FS is not defined but CONFIG_DEBUG_FS is
then the code fails to compile.
Fix this by conditionally compile on CONFIG_CAN_MCP25XXFD_DEBUG_FS.
CONFIG_CAN_MCP25XXFD_DEBUG_FS depends on CONFIG_DEBUG_FS, there is no
need to test for both.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit c6be3e002d9d878a5119bcaa31ff85a4dbf00301)
|
|
By masking the FIFO number in the MCP25XXFD_CAN_FLTCON macro, the
mcp25xxfd_can_fifo_clear() function doesn't clear the filters at all, as
the masking makes MCP25XXFD_CAN_FLTCON(32) equal MCP25XXFD_CAN_FLTCON(0).
| mcp25xxfd_can_fifo_clear_regs(cpriv, MCP25XXFD_CAN_FLTCON(0),
| MCP25XXFD_CAN_FLTCON(32));
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 265153724aa0339bae525d22511377380fa45af5)
(cherry picked from commit 8db84b98f1d4c27c943d98ab0ebb17d966585a1d)
|
|
The interrupt handler thread mcp25xxfd_can_int() will reschedule, if
"loops % reschedule_int_thread_after" equals 0. This is the case for the
initial loop.
Change the code to match what the module parameter suggests to do.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit d4f9db41f6db9c233dd8847171c82c7f2ba0ec2e)
(cherry picked from commit 907cf9a34059e621dfbf3ad77c30eab5014de5b3)
|
|
The timestamp is an u32, so don't cap to upper 16 bit.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 6546a196615cae17d1e4c52f5135b02469adc15f)
(cherry picked from commit 1736603794d37359ce180fc0a2819adc701e8099)
|
|
Put sbk into echo queue before triggering send.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 2c1df7da765455d86f5630e050905aa3b599ed97)
(cherry picked from commit 670deff1f2c9e20a3073bcf2af309e042b893bf6)
|
|
push skb into networking stack in interrupt handler
Use netif_rx() instead of netif_receive_skb() to push skb into
networking stack from interrupt handler.
Reported-by: Tom Prohaszka <tprohaszka@capp-tech.com>
Tested-by: Tom Prohaszka <tprohaszka@capp-tech.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 62f9531af8e7f470830d3d285b39570b361e6473)
(cherry picked from commit 7623274a7a1b87a879e08eb339ebac1580b42579)
|
|
The xmit callback is serialized by the network stack, no need for
locking.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 8d59059d2098ef612fad460e0e9f832ec36d5fbd)
(cherry picked from commit dda94b4f004fd92d8534b6c8b6c4bc0854569fc6)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 6f267fd90b21536d3dcb3b4549dbf800357cd944)
(cherry picked from commit abfc29bd48224618fed077c3a3ca5aaf89b04886)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 4dc124bd4f631ff0f83a43a2ae9bfafd664b0e34)
(cherry picked from commit 3cc268978d684815b222ad47fc321c3dcd70d23a)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 9781ee8b4dc9feb1809e864bbbbe0bd2001aed59)
(cherry picked from commit 67fbdce642e12c3a2626b378932d14f31afb5243)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 6cf806f542afb974470f29324fcfa76539539c8b)
(cherry picked from commit a6b68b69cf6ae66d72074ca2284592f30b353c80)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit d8a864d5eab58cfb0e4deb137359f80a828dc050)
(cherry picked from commit 82094b7384832058d8c53ff8df8ac7a0ee9b3531)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 5a142c75c22d38f7166e2e3ac8b08b3f834b61bc)
(cherry picked from commit 78ee9b42516d73a6363a4482c6fdc319c81b0241)
|
|
submit_queue_count
otherwise with switched off DEBUGFS support the driver will not work
anymore.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 3d566db75ce8a954c0a4ad67b23d9069e7851175)
(cherry picked from commit 4f0a5324eaa82c33e88165d99bc793b0a3d29b2b)
|
|
add comments
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit bd0713e14f8665ffaff2f17f6e0ac0b7fcaef902)
(cherry picked from commit e4e4be66ec3cbcee3a5d68de507d679b6b2dda19)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 252e80b4deb8cc90c723d64eac22b2ccdb699234)
(cherry picked from commit 6dbc7444ef7a686cb064f845a326ddd03786382b)
|
|
... to match struct spi_transfer::len
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 39254b601f7f8b96772b2e5438f246b3222aa394)
(cherry picked from commit 67553a4d94e207b489139009926d0357b1c50f27)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 6aea7d2725f280dba39fdaef0c44ad44e3e6ac28)
(cherry picked from commit d62107d6f16e83454eb24297cdeac524ef623a32)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 50eb980ed7a5ce26e282bbbb1a9967e8eeb90103)
(cherry picked from commit 3fcd5e431aaca6800bf3020b689bd4124b27bf83)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 9aad623041c9f51dbbfdabdb06105c2418250a58)
(cherry picked from commit 1893ad574867391df738709558bdeb8139a74ec8)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 8cbcb26c1b0b5b3651b1b8ad3b45108ade0a3520)
(cherry picked from commit e0181dd273d69e2731b5324cbaacba163c70ff55)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 94cb09bb6940af90e070b35795700eebd80de944)
(cherry picked from commit 786ce0ae18ab7a90bbf244a46e4f679273ad3ecb)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 07b342ed30c877fa5c80a12e2ebc00912991cafb)
(cherry picked from commit e5139bd1a2c5ef0f0aee51ccf80def78c6dbdddd)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 0471451da27026b16091e2eeb5e23a642c730202)
(cherry picked from commit d6e19af21417ca13d392364ec34c534b56150fc5)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit e777dddeaa081a0384c20b079844e3216bfb5dc9)
(cherry picked from commit 763b1a1ee532cb075ae627ed6d7e8801bf3395ea)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 045e9e8c3dfa53b0cc47ea7e514a0d5b10a79ec1)
(cherry picked from commit be81ee3cc51729f2a683530ba91016e688473be8)
|
|
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit ed57b613fa490cc9c85ddfc8ff00c2ff951581d3)
(cherry picked from commit edab6033d7d7e77a60d69d96b09ed2b7060c3c23)
|
|
Fixing a couple MCP25xxFD reg/bit definitions, switching to the names
used in the DS.
Signed-off-by: Thomas Kopp <thomas.kopp@microchip.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit bc37d9df4543a47703fa876d8a283d7db23ab2c9)
(cherry picked from commit f512b45cf5684dff2c2ba0936215c52e5bfec809)
|
|
In case of predicted DLC=15 and in case at least 33% of those are
sent via BRS be aggressive and use bulk fifo reads to avoid missing
any frames due to releasing FIFOs not as fast as possible.
This would be of most impact when having a 1MHz Can Bus with
a 8MHz data bitrate.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit c23b97d9301f0683d0064f446cc2116109b03b6b)
(cherry picked from commit 35b27ceff48808ea3876a1840c62c81b0c7f52e9)
|
|
Allow prediction of can frame sizes based on the last 32 Can Frames
received.
Naive histogram approach hast been taken for now.
Some simple stats based on 1000 frames received with DLC=6:
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_reads_prefetched_too_few
16
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_reads_prefetched_too_few_bytes
96
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_reads_prefetched_too_many
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_reads_prefetched_too_many_bytes
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_reads_prefetch_predicted
6
The first 16 frames are predicted as 0, but after that the prediction is 6.
It should be possible to take this prediction to use bulk reads for CanFD
as well when we have a prediction of length of 48 or 64.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit f355fdaa97c026ad70882a0cb11943cccefad81b)
(cherry picked from commit 0c0a804cb53c699d61f13aa9904c3d9cc249dd3a)
|
|
To reduce the amount of spi_messages send this patch optimizes the
read of RX fifos so that multiple Fifos are read together.
This only works well in CAN2.0 mode where the overhead of prefetching
8 bytes (even if the actual length is 0) is negligable compared
to the SPI-framework overhead.
Statistics in debugfs show for 1000000 DLC=0 can messages received:
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads <==
355411
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_1 <==
92778
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_2 <==
7133
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_3 <==
130390
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_4 <==
123807
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_5 <==
1266
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_6 <==
34
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_7 <==
1
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_bulk_reads_8+ <==
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/rx_reads <==
999999
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/int_system_error <==
1
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/int_system_error_rx <==
1
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/int_system_error_tx <==
0
There was one SERR error where we lost one can frame during the handling
of the error condition.
So to read all of those 999999 RX fifos we formerly have scheduled
999999 spi_messages.
With this patch we have only scheduled 355411 spi_messages, so
only 35.5% of the former value.
This also means we have not been transferring 1289176 (=2*(999999-355411))
unnecessary command bytes over the SPI bus.
As we have been issuing less SPI transfers reading SRAM this
also has reduced the likleyhood of SERR happening - it does not
solve the complete issue as seen above.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 0f869f3a7c36805b1b64c54ebf654a94e81735c1)
(cherry picked from commit 2908eda0a54b696379a4aec213e3a2883eebe51e)
|
|
To reduce the amount of spi_messages send this patch optimizes the
read TEF so that multiple TEFs are read together.
Statistics in debugfs show for 100000 DLC=0 can messages sent:
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_conservative_reads
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads
44691
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_1
1862
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_2
30349
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_3
12480
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_4
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_5
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_6
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_7
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_optimized_reads_8+
0
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_reads
100000
==> /sys/kernel/debug/mcp25xxfd-spi0.0/can/stats/tef_read_splits
0
So to read all of those 100000 TEF frames to read we formerly have
scheduled 100000 spi_messages.
While with this patch we have only scheduled 44691 spi_messages, so
only 44.6% of the former value.
This also means we have not been transferring 110618 (=2*30349+2*2*12480)
unnecessary command bytes over the SPI bus.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 345593580ee21f51fee1eb410905641379dcb329)
(cherry picked from commit 92b343a1c54d91a1520ac10f7486a25c6b08cd11)
|
|
We have already enough information to know how many tx-messages have
been terminated so that we do not have to query TEF every time if
there is anything pending but we can read the tefs blindly.
This avoids 1 SPI transfer per TEF read.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 4c0efe3aeb48a536fd6a9d6f23954e64e60f8c0c)
(cherry picked from commit 9a0ddec6de652158e49fecd6e4b6cc732873062a)
|
|
To more reliably detect if the controller is connected use
crc spi commands and fail when the CRC does not match.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 974eff55c1aff4c83de955fc12cb9cc5776a219c)
(cherry picked from commit f9c2fb5910481b220b925d8306fd5f2291aa90c7)
|
|
Allow the (optional) use of SPI CRC read commands that can get enabled
via a module parameter.
In the future it may become necessary to enable this for register reads
(or at least some specific register reads) as there is a HW bug that
may result in glitches on the spi bus.
Possible variants here are:
* just retry the read
* do not use some fifos (7, 15, 23, 31) at all
* test for bit flips of specific bits and retest CRC
--
Changelog:
V7 -> V8: added in V8
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 1e37e00f473bc9b9f192234a40e4b0ffac1d27ad)
(cherry picked from commit a5f9a2ea20aca68620199e4e6e80834544c74063)
|
|
Add un-optimized Can2.0 and CanFD transmission support.
On a Rpi3 we can saturate the CAN bus at 1MHz transmitting Can2.0
frames with DLC=0 for the number of configured tx-fifos.
Afterwards we need some time to recover the state before we can
fill in the fifos again.
With 7 tx fifos we can: send those 7 frames in 0.33ms and then we
wait for 0.26ms so that is a 56% duty cycle.
With 24 tx fifos this changes to: 1.19ms for 24 frames and then we
wait for 0.52ms so that is a 70% duty cycle.
--
Changelog:
V6 -> V7: added can transmission into a separate patch to reduce
the size of the individual patches to make the linux-can
mailing-list happy...
V7 -> V8: reduce default number of tx fifos to 6 to avoid HW-bug
during spi-read of TXREQ
include feedback by Joe Burmeister
sparse fixes based on feedback by Marc Kleine-Budde
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 69a74571ed18c82f0c5d8cc8e8ce5d6214070481)
(cherry picked from commit c428a5b90cddba52796f5a266c4f4e7eca71903d)
|
|
Add un-optimized Can2.0 and CanFD support.
CAN-Transmission and Optimizations and are separate patches
On a Rasperry pi 3 it is already able to process Can2.0 Frames
with DLC=0 on a CAN bus with 1MHz. without losing any packets
on the SPI side. Packets still get lost inside the network stack.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
---
Changelog:
V1 -> V2: new more generic name based on feedback from microchip
cleanup of code (checkpatch)
address all feedback on code
prepare code for GPIO handling (separate patches)
handle systemerrors in a much better/reliable way
V2 -> V3: added vendor-prefix for gpio-opendrain
V3 -> V4: resend
V4 -> V5: split can driver into a separate patch
code cleanup/rewrite
V5 -> V6: update copyright year
add rational documentation for basic rx-prefetch length
fix CAN_OBJ_FLAGS_BRS and CAN_OBJ_FLAGS_ESI bug
fixed TDC configuration - at this moment configurable
via module parameters but with (hopefully) sensible
defaults
use length instead of dlc as parameter in call of
mcp25xxfd_can_submit_rx_fd_frame
moved use of mcp25xxfd_can_int_handle_tefif_oportunistic
to separate patch
reorganized code based on feedback by Wolfgang Grandegger
fixed transmission problem reported by Hubert Denkmair
added extra custom error flags
added voluntary scheduling in interrupt thread
V6 -> V7: added include linux/irqreturn.h (feedback by Eric Scholz)
move can transmission into a separate patch to reduce
the size of the individual patches to make the linux-can
mailing-list happy...
V7 -> V8: sparse changes as hinted by Marc Kleine-Budde
integrate feedback by Marc Kleine-Budde
integrate feedback by Joe Burmeister
mcp25xxfd_can_get_mode return error handling
error messages on error in interrupt-handler
disable interrupts when we experience errors.
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit 531555f2fb48fa41e4dcc2259bbd3a37257effca)
(cherry picked from commit 7d087020946cbf93983cba9c78cc7225f2f0f48d)
|
|
Add GPIOLIB support to mcp25xxfd.
--
Changelog:
V4 -> V5: reorganisation of the patchset into smaller patches
V7 -> V8: include mcp25xxfd_gpio.h to fix sparse checks
as per feedback from Marc Kleine-Budde
added xstandby and open drain support
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit a350a0e406c4c3d988d6486ab893a4755b441d7d)
(cherry picked from commit bdf9d5f9f84a9d189709e9ac6aedca7e920cfa26)
|
|
This patch adds basic driver support for the Microchip mcp2517fd
CAN-FD controller.
The mcp2517fd is capable of transmitting and receiving standard data
frames, extended data frames, remote frames and Can-FD frames.
The mcp2517fd interfaces with the host over SPI.
This patch iprovides basic driver functionality:
setting up clocks and the infrastructure for the can and gpio portions
of the driver.
Datasheet:
* http://ww1.microchip.com/downloads/en/DeviceDoc/20005688A.pdf
Reference manual:
* http://ww1.microchip.com/downloads/en/DeviceDoc/20005678A.pdf
Errata:
* http://ww1.microchip.com/downloads/en/DeviceDoc/MCP2517FD-Silicon-Errata-and-Data-Sheet-Clarification-DS80000792A.pdf
--
Changelog:
V4 -> V5: reorganisation of the patchset into smaller patches
review of the whole driver code for better modularization
V5 -> V6: Major refactoring as per feedback from Wilhelm Grandegger
Fixing bugs reported by several other parties
Split out of optimizations into separate patches
V6 -> V7: added include linux/irqreturn.h (feedback by Eric Scholz)
move can transmission into a separate patch to reduce
the size of the individual patches to make the linux-can
mailing-list happy...
V7 -> V8: add support for mcp2518fd
fixed mcp25xxfd_cmd_read_mask bug clearing bits
allow setting SPI clock speeds via debugfs
Incorprated Feedback by Marc Kleine-Budde
sparse fixes
makefile indenting
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
(cherry picked from commit db3a48198fe1e4131a85df5b29a60851cd975703)
(git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git -- mcp25xxfd-rpi)
(cherry picked from commit 4aa1a60f4f30bceb360f8e5405fa4de53008abe2)
|
|
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
(cherry picked from commit 4b59b3de14e5bb1b9d449f8b419a9de3616907e9)
|
|
Regular USB device gets power down in system suspend.
New hardware designs require to include USB devices as part of main
scheme. If this case the power could be provide to a device
unmanagable. The best option to reset this kind of devices is to
reset it on USB physical interface level.
Add this ability. Using "reset-on-resume" DT-option for usb-generic driver
enables reset nested device on resume event by gpio interface.
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
(cherry picked from commit 4c74d1a7b1e1ece7f6b7a4dfe5da9170a6dd9644)
Conflicts:
drivers/usb/phy/phy-generic.c
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
- Fix order of after-error clean procedures upon probing new device.
- Refactor handling of wakeup PAD setup.
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
(cherry picked from commit f62ce7ec98206218b4fc56891cb34ab263fc1d5c)
Conflicts:
drivers/gpio/gpio-mxc.c
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Guarded the label out_clk_disable: with
Deleted whitespace
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
|