Re: [PATCH net-next v2 1/5] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-02-11 Thread Sven Van Asbroeck
Hi Sergej, thank you for testing this ! On Thu, Feb 11, 2021 at 7:18 PM Sergej Bauer wrote: > > although whole set of tests might be an overly extensive, but after applying > patch v2 [1/5] > tests are: I am unfamiliar with the test_ber tool. Does this patch improve things?

Re: [PATCH net-next v2 2/5] lan743x: sync only the received area of an rx ring buffer

2021-02-12 Thread Sven Van Asbroeck
Hi Bryan, On Fri, Feb 12, 2021 at 3:45 PM wrote: > > According to the document I have, FRAME_LENGTH is only valid when LS bit is > set, and reserved otherwise. > Therefore, I'm not sure you can rely on it being zero when LS is not set, > even if your experiments say it is. > Future chip revisio

Re: [BUG REPORT] media: coda: mpeg4 decode corruption on i.MX6qp only

2021-02-12 Thread Sven Van Asbroeck
Philipp, Fabio, I was able to verify that the PREs do indeed overrun their allocated ocram area. Section 38.5.1 of the iMX6QuadPlus manual indicates the ocram size required: width(pixels) x 8 lines x 4 bytes. For 2048 pixels max, this comes to 64K. This is what the PRE driver allocates. So far, s

Re: [BUG REPORT] media: coda: mpeg4 decode corruption on i.MX6qp only

2021-02-10 Thread Sven Van Asbroeck
Bonjour Nicolas, On Wed, Feb 10, 2021 at 11:11 AM Nicolas Dufresne wrote: > > Are you sure you aren't just running out of CMA ? This is the only things that > comes to mind at the moment, sorry if it's not that useful. Thanks for the suggestion! No worries, this is such a strange/weird problem,

Re: [BUG REPORT] media: coda: mpeg4 decode corruption on i.MX6qp only

2021-02-10 Thread Sven Van Asbroeck
Found it! The i.MX6QuadPlus has two pairs of PREs, which use the extended section of the iRAM. The Classic does not have any PREs or extended iRAM: pre1: pre@21c8000 { compatible = "fsl,imx6qp-pre"; fsl,iram = <&ocram2>; }; pre3: pre@21ca000 { compatible = "fsl,imx6qp-pre";

Re: [PATCH net-next v3 0/5] lan743x speed boost

2021-02-17 Thread Sven Van Asbroeck
Hi Jakub and Bryan, On Wed, Feb 17, 2021 at 4:43 PM wrote: > > Just to let you know, my colleague tested the patches 1 and 2 on x86 PC and > we are satisfied with the result. > We confirmed some performance improvements. > We also confirmed PTP is working. > > Thanks for your work on this. > > T

[BUG REPORT] media: coda: mpeg4 decode corruption on i.MX6qp only

2021-02-03 Thread Sven Van Asbroeck
From: Sven Van Asbroeck We have observed that under certain repeatable circumstances, the CODA mem2mem device consistently generates corrupted frames. This happens only on an i.MX6qp (Plus) - the classic imx6q is not affected. This happens when the virtual X screen is wider than 0x900 pixels (1

Re: [PATCH net-next v1 2/6] lan743x: support rx multi-buffer packets

2021-02-03 Thread Sven Van Asbroeck
Thank you Bryan. I will prepare a v2 early next week. Would Microchip be able to donate some time to test v2? My own tests are certainly not perfect. Various stress tests across architectures (intel/arm) would help create confidence in the multi-buffer frame implementation. Perhaps Microchip has v

Re: [PATCH net-next v1 2/6] lan743x: support rx multi-buffer packets

2021-02-03 Thread Sven Van Asbroeck
On Wed, Feb 3, 2021 at 3:14 PM wrote: > > We can test on x86 PC. We will just need about a week after you release your > next version. > That's great. If you have any suggestions on how I can improve testing on my end, feel free to reach out.

Re: [PATCH v5 2/7] pwm: pca9685: Support hardware readout

2021-01-29 Thread Sven Van Asbroeck
Hi Clemens, On Fri, Jan 29, 2021 at 11:31 AM Clemens Gruber wrote: > > Ok, so you suggest we extend our get_state logic to deal with cases > like the following: Kind of. We can't control how other actors (bootloaders etc) program the chip. As far as I know, there are many, many different registe

[PATCH net-next v1 0/6] lan743x speed boost

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck The first patch of this series boosts the chip's rx performance by up to 3x on cpus such as ARM. However it introduces a breaking change: the mtu can no longer be changed while the network interface is up. To get around this efficiently, the second patch adds d

[PATCH net-next v1 2/6] lan743x: support rx multi-buffer packets

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Multi-buffer packets enable us to use rx ring buffers smaller than the mtu. This will allow us to change the mtu on-the-fly, without having to stop the network interface in order to re-size the rx ring buffers. This is a big change touching a key driver function

[PATCH net-next v1 5/6] TEST ONLY: lan743x: skb_alloc failure test

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Simulate low-memory in lan743x_rx_allocate_skb(): fail 10 allocations in a row in every 100. Signed-off-by: Sven Van Asbroeck --- Tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git # 46eb3c108fe1 To: Bryan Whitehead To: unglinuxdri

[PATCH net-next v1 4/6] TEST ONLY: lan743x: limit rx ring buffer size to 500 bytes

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Signed-off-by: Sven Van Asbroeck --- Tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git # 46eb3c108fe1 To: Bryan Whitehead To: unglinuxdri...@microchip.com To: "David S. Miller" To: Jakub Kicinski Cc: Andrew Lunn Cc: Alexey Denisov

[PATCH net-next v1 3/6] lan743x: allow mtu change while network interface is up

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Now that we can use rx ring buffers smaller than the mtu, we allow users to change the mtu on the fly. Tested as follows: Tests with debug logging enabled (add #define DEBUG). 1. Set the chip mtu to 1500, generate lots of network traffic. Stop all network traffic

[PATCH net-next v1 6/6] TEST ONLY: lan743x: skb_trim failure test

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Simulate low-memory in lan743x_rx_trim_skb(): fail one allocation in every 100. Signed-off-by: Sven Van Asbroeck --- Tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git # 46eb3c108fe1 To: Bryan Whitehead To: unglinuxdri...@microchip.com To: "

[PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-01-29 Thread Sven Van Asbroeck
From: Sven Van Asbroeck The buffers in the lan743x driver's receive ring are always 9K, even when the largest packet that can be received (the mtu) is much smaller. This performs particularly badly on cpu archs without dma cache snooping (such as ARM): each received packet results in a 9K

Re: [PATCH v5 2/7] pwm: pca9685: Support hardware readout

2021-01-29 Thread Sven Van Asbroeck
Hi Clemens, On Fri, Jan 29, 2021 at 3:37 PM Clemens Gruber wrote: > > Is the driver really responsible for bootloaders that program the chip > with invalid values? No, but it's responsible for correcting invalid values. Otherwise the driver doesn't work. > The chip comes out of PoR with sane de

Re: [PATCH v5 2/7] pwm: pca9685: Support hardware readout

2021-01-29 Thread Sven Van Asbroeck
Hi Clemens, On Fri, Jan 29, 2021 at 4:24 PM Sven Van Asbroeck wrote: > > LEN_ON = 409, LED_OFF = 1228 and > LED_ON = 419, LED_OFF = 1238 > produce the same result. you can't see the difference between the two > when scoping the channel. there are probably more ways to d

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-01-29 Thread Sven Van Asbroeck
On Fri, Jan 29, 2021 at 5:01 PM Jakub Kicinski wrote: > > You may need to rebase to see this: > > drivers/net/ethernet/microchip/lan743x_main.c:2123:41: warning: restricted > __le32 degrades to integer Good catch. The problem goes away with the next commit in the set. This is probably because I

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-01-29 Thread Sven Van Asbroeck
Hi Andrew, thank you so much for looking at this patch ! On Fri, Jan 29, 2021 at 3:36 PM Andrew Lunn wrote: > > So this patch appears to contain two different changes > 1) You only allocate a receive buffer as big as the MTU plus overheads > 2) You change the cache operations to operate on the re

Re: [PATCH net-next v1 2/6] lan743x: support rx multi-buffer packets

2021-01-29 Thread Sven Van Asbroeck
Hoi Willem, thanks a lot for reviewing this patch, much appreciated !! On Fri, Jan 29, 2021 at 5:11 PM Willem de Bruijn wrote: > > > +static struct sk_buff * > > +lan743x_rx_trim_skb(struct sk_buff *skb, int frame_length) > > +{ > > + if (skb_linearize(skb)) { > > Is this needed? That will

Re: [PATCH net-next v1 2/6] lan743x: support rx multi-buffer packets

2021-01-29 Thread Sven Van Asbroeck
On Fri, Jan 29, 2021 at 6:08 PM Willem de Bruijn wrote: > > Okay. I found it a bit hard to parse how much true code change was > mixed in with just reindenting existing code. If a lot, then no need > to split of the code refactor. Thank you. The code is quite hard to review in patch format. Proba

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-01-30 Thread Sven Van Asbroeck
Hi Bryan, thank you so much for reviewing, I really appreciate it. On Sat, Jan 30, 2021 at 5:11 PM wrote: > > > /* unmap from dma */ > > + packet_length = RX_DESC_DATA0_FRAME_LENGTH_GET_ > > + (descriptor->data0);

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-01-30 Thread Sven Van Asbroeck
On Sat, Jan 30, 2021 at 5:11 PM wrote: > > It appears you moved this packet_length assignment from just below the > following if block, however you left out the le32_to_cpu.See next comment PS this merge snafu is removed completely by the next patch in the set. So this will not prevent you from

Re: [PATCH net-next v1 2/6] lan743x: support rx multi-buffer packets

2021-01-31 Thread Sven Van Asbroeck
On Sun, Jan 31, 2021 at 2:06 AM wrote: > > > static int lan743x_rx_process_packet(struct lan743x_rx *rx) { > It looks like this function no longer processes a packet, but rather only > processes a single buffer. > So perhaps it should be renamed to lan743x_rx_process_buffer, so it is not > mis

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-02-05 Thread Sven Van Asbroeck
Hi Sergej, On Fri, Feb 5, 2021 at 7:44 AM Sergej Bauer wrote: > > Hi Sven > I can confirm great stability improvement after your patch > "lan743x: boost performance on cpu archs w/o dma cache snooping". > > Test machine is Intel Pentium G4560 3.50GHz > lan743x with rejected virtual phy 'inside'

Re: [Q] devicetree overlays

2020-08-12 Thread Sven Van Asbroeck
On Wed, Aug 12, 2020 at 9:28 AM Enrico Weigelt, metux IT consult wrote: > > But I've still got another problem: how can I use DT along w/ ACPI ? > That's a very good question. I focus on arm, so I'm unfamiliar with ACPI. Hopefully someone with ACPI knowledge can chime in.

Re: [Q] devicetree overlays

2020-08-07 Thread Sven Van Asbroeck
Hello Enrico, On Fri, Aug 7, 2020 at 7:27 AM Enrico Weigelt, metux IT consult wrote: > > In both cases it would be nice to have the actual device configuration > written as a DT snippet, which just needs to be loaded. > I believe you're asking: "how do I associate device tree nodes to devices on

Re: [PATCH v4 1/4] pwm: pca9685: Switch to atomic API

2020-12-10 Thread Sven Van Asbroeck
On Thu, Dec 10, 2020 at 3:54 PM Clemens Gruber wrote: > > After reading your reasoning in this mail and rethinking the whole > situation, I do no longer have any objections to the more complex > solution. (Allowing 0% and 100% duty cycle channels with any period) > > I first thought it would be to

Re: [PATCH net v2] lan743x: fix rx_napi_poll/interrupt ping-pong

2020-12-11 Thread Sven Van Asbroeck
Hi Heiner, On Thu, Dec 10, 2020 at 2:32 AM Heiner Kallweit wrote: > > > In addition you could play with sysfs attributes > /sys/class/net//gro_flush_timeout > /sys/class/net//napi_defer_hard_irqs Interesting, I will look into that. > > @@ -2407,7 +2409,7 @@ static int lan743x_rx_open(struct lan

Re: [PATCH] spi: dt-bindings: clarify CS behavior for spi-cs-high and gpio descriptors

2020-12-11 Thread Sven Van Asbroeck
On Fri, Dec 11, 2020 at 8:18 AM Mark Brown wrote: > > Yeah, it'd definitely be easier to read and clearer what people should > actually do. I think it would be beneficial if this consisted of two very clearly separated parts: 1. the actual recommended binding - so people writing new devicetrees

[PATCH net v3] lan743x: fix rx_napi_poll/interrupt ping-pong

2020-12-11 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Even if there is more rx data waiting on the chip, the rx napi poll fn will never run more than once - it will always read a few buffers, then bail out and re-arm interrupts. Which results in ping-pong between napi and interrupt. This defeats the purpose of napi, and is

Re: [PATCH v4 1/4] pwm: pca9685: Switch to atomic API

2020-12-07 Thread Sven Van Asbroeck
Hi Uwe, On Mon, Dec 7, 2020 at 5:00 PM Uwe Kleine-König wrote: > > This is not acceptable, if you have two PWM outputs and a consumer > modifies one of them the other must change. So if this chip only > supports a single period length of all channels, the first consumer > enabling a channel defin

Re: [PATCH v4 1/4] pwm: pca9685: Switch to atomic API

2020-12-07 Thread Sven Van Asbroeck
Hi Clemens, see below. On Mon, Dec 7, 2020 at 2:37 PM Clemens Gruber wrote: > > The switch to the atomic API goes hand in hand with a few fixes to > previously experienced issues: > - The duty cycle is no longer lost after disable/enable (previously the > OFF registers were cleared in disable a

Re: [PATCH v4 1/4] pwm: pca9685: Switch to atomic API

2020-12-08 Thread Sven Van Asbroeck
Uwe, Thierry, On Tue, Dec 8, 2020 at 4:10 AM Uwe Kleine-König wrote: > > If this is already in the old code, this probably warrants a separate > fix, and yes, I consider this a severe bug. (Consider one channel > driving a motor and reconfiguring an LED modifies the motor's speed.) > I think you

Re: [PATCH net v1 1/2] net: dsa: microchip: fix devicetree parsing of cpu node

2020-12-08 Thread Sven Van Asbroeck
Andrew, Jakub, On Sat, Dec 5, 2020 at 10:28 AM Sven Van Asbroeck wrote: > > From: Sven Van Asbroeck > > On the ksz8795, if the devicetree contains a cpu node, > devicetree parsing fails and the whole driver errors out. > > Fix the devicetree parsing code by making it use th

Re: [PATCH v4 1/4] pwm: pca9685: Switch to atomic API

2020-12-08 Thread Sven Van Asbroeck
On Tue, Dec 8, 2020 at 11:57 AM Thierry Reding wrote: > > Is this really that complicated? I sounds to me like the only thing that > you need is to have some sort of usage count for the prescaler. Whenever > you want to use the prescaler you check that usage count. If it is zero, > then you can ju

Re: [PATCH net v1 2/2] lan743x: boost performance: limit PCIe bandwidth requirement

2020-12-08 Thread Sven Van Asbroeck
ts/sec0 > > > > And with both sides set to MTU 9000 bytes: > > Before: > > [ ID] Interval Transfer Bandwidth Retr > > [ 4] 0.00-20.00 sec 1.87 GBytes 803 Mbits/sec 27 > > After: > > [ ID] Interval Transfer Ban

Re: [PATCH net v1 1/2] lan743x: improve performance: fix rx_napi_poll/interrupt ping-pong

2020-12-08 Thread Sven Van Asbroeck
On Tue, Dec 8, 2020 at 2:50 PM Jakub Kicinski wrote: > > > > > +done: > > /* update RX_TAIL */ > > lan743x_csr_write(adapter, RX_TAIL(rx->channel_number), > > rx_tail_flags | rx->last_tail); > > -done: > > + > > I assume this rings the doorbell to let the device

Re: [PATCH net v1 2/2] lan743x: boost performance: limit PCIe bandwidth requirement

2020-12-08 Thread Sven Van Asbroeck
Hi Andrew, On Tue, Dec 8, 2020 at 5:51 PM Andrew Lunn wrote: > > > > > So I assumed that it's a PCIe dma bandwidth issue, but I could be wrong - > > I didn't do any PCIe bandwidth measurements. > > Sometimes it is actually cache operations which take all the > time. This needs to invalidate the c

Re: [PATCH net v1 1/2] lan743x: improve performance: fix rx_napi_poll/interrupt ping-pong

2020-12-08 Thread Sven Van Asbroeck
On Tue, Dec 8, 2020 at 6:50 PM Eric Dumazet wrote: > > Driver could be called with an arbitrary budget (of 64), > and if its ring buffer has been depleted, return @budget instead of skb > counts, > and not ream the interrupt > Aha, so the decision to re-arm the interrupts is made by looking at w

Re: [PATCH v5 2/7] pwm: pca9685: Support hardware readout

2021-01-07 Thread Sven Van Asbroeck
On Sun, Jan 3, 2021 at 12:04 PM Clemens Gruber wrote: > > I will continue working on this series in the upcoming weeks. > Feedback on the .get_state issue would be greatly appreciated. In absence of specifications, I tend to keep things as simple as possible.

Re: [PATCH 2/2] arm64: dts: imx8mm: Add Gateworks IMX8MM Development Kits

2020-12-28 Thread Sven Van Asbroeck
On Mon, Dec 28, 2020 at 12:55 PM Tim Harvey wrote: > > I'm happy to test your patches for lan743x. > That's awesome ! I'll post them early in the new year, so that test + review can happen in parallel.

Re: [PATCH 2/2] arm64: dts: imx8mm: Add Gateworks IMX8MM Development Kits

2020-12-24 Thread Sven Van Asbroeck
Tim, Anders, On Wed, Dec 23, 2020 at 5:45 PM Tim Harvey wrote: > > - 2x RJ45 GbE (IMX8MM FEC and LAN743x) I noticed that you are users of the LAN743x PCIe ethernet chip. On non-cache snooping architectures such as ARM, the receive performance of this chip's driver is about 1/3 of what it shoul

Re: [PATCH 09/13] Samples: Rust examples

2021-04-16 Thread Sven Van Asbroeck
On Thu, Apr 15, 2021 at 3:11 AM Greg Kroah-Hartman wrote: > > I've been talking with the developers here about doing a "real" driver Would it be beneficial if the device h/w targeted by the "real" Rust driver has QEMU emulation? Perhaps in addition to physical silicon. If developers don't need a

Re: [PATCH] staging: fieldbus: simplify devm_anybuss_host_common_probe

2021-04-12 Thread Sven Van Asbroeck
On Sun, Apr 11, 2021 at 9:14 PM tiantao (H) wrote: > > What about doing it like this? > > -static void host_release(struct device *dev, void *res) > +static void host_release(void *res) > { > - struct anybuss_host **dr = res; > - > - anybuss_host_common_remove(*dr); > + anybuss

Re: [PATCH net v1] lan743x: fix ethernet frame cutoff issue

2021-04-14 Thread Sven Van Asbroeck
Hi Julian, On Wed, Apr 14, 2021 at 8:53 AM Julian Wiedmann wrote: > > On a cursory glance, using __netdev_alloc_skb_ip_align() here should > allow you to get rid of all the RX_HEAD_PADDING gymnastics. > > And also avoid the need for setting RX_CFG_B_RX_PAD_2_, as the > NET_IP_ALIGN part would no

Re: [PATCH net v1] lan743x: fix ethernet frame cutoff issue

2021-04-14 Thread Sven Van Asbroeck
Hi Julian, On Wed, Apr 14, 2021 at 9:33 AM Julian Wiedmann wrote: > > __netdev_alloc_skb_ip_align() already reserves the NET_IP_ALIGN part. > So when the NIC stores into the dma-mapped skb->data parts, each > fragment will automatically have the required alignment - even when > you only care abou

Re: [PATCH] staging: fieldbus: simplify devm_anybuss_host_common_probe

2021-04-09 Thread Sven Van Asbroeck
Hello Tian, thank you for the contribution. See below. On Fri, Apr 9, 2021 at 4:33 AM Tian Tao wrote: > > Use devm_add_action_or_reset() instead of devres_alloc() and > devres_add(), which works the same. This will simplify the > code. There is no functional changes. > > Signed-off-by: Tian Tao

Re: [PATCH net v1] lan743x: fix ethernet frame cutoff issue

2021-04-09 Thread Sven Van Asbroeck
Hi George, On Fri, Apr 9, 2021 at 10:12 AM George McCollister wrote: > > I'm glad everyone was able to work together to get this fixed properly > without any figure pointing or mud slinging! Kudos everyone. Same, this is what the kernel community is supposed to be all about. And thank you for t

Re: [PATCH net-next v1] lan743x: replace devicetree phy parse code with library function

2020-11-17 Thread Sven Van Asbroeck
On Tue, Nov 17, 2020 at 1:47 PM Jakub Kicinski wrote: > > On Tue, 17 Nov 2020 03:09:56 +0100 Andrew Lunn wrote: > > Reviewed-by: Andrew Lunn > Applied, thanks! Thank you Andrew and Jakub !

Re: [PATCH 1/3] pwm: pca9685: Switch to atomic API

2020-11-18 Thread Sven Van Asbroeck
Hi Clemens, thank you so much for this contribution. I no longer have access to this chip, so I cannot test the changes. Some friendly/constructive feedback below. On Wed, Nov 18, 2020 at 12:44 PM Clemens Gruber wrote: > > This switch to the atomic API goes hand in hand with a few fixes to > pre

Re: [PATCH net v1 2/2] lan743x: boost performance: limit PCIe bandwidth requirement

2020-12-08 Thread Sven Van Asbroeck
On Tue, Dec 8, 2020 at 6:36 PM Florian Fainelli wrote: > > dma_sync_single_for_{cpu,device} is what you would need in order to make > a partial cache line invalidation. You would still need to unmap the > same address+length pair that was used for the initial mapping otherwise > the DMA-API debugg

Re: [PATCH] spi: dt-bindings: clarify CS behavior for spi-cs-high and gpio descriptors

2020-12-09 Thread Sven Van Asbroeck
On Wed, Dec 9, 2020 at 4:57 AM H. Nikolaus Schaller wrote: > > + > + device node | cs-gpio | CS pin state active | Note > + +===+=+= > + spi-cs-high | - | H | > + - | -

Re: [PATCH] spi: dt-bindings: clarify CS behavior for spi-cs-high and gpio descriptors

2020-12-09 Thread Sven Van Asbroeck
On Wed, Dec 9, 2020 at 1:16 PM H. Nikolaus Schaller wrote: > > This is also what made me wonder if that is really intended because then > the whole discussion about the cs-gpio-flags and inversion and the fixes > would not have been needed. The current code and fixes are all about > not ignoring t

Re: [PATCH] spi: dt-bindings: clarify CS behavior for spi-cs-high and gpio descriptors

2020-12-09 Thread Sven Van Asbroeck
On Wed, Dec 9, 2020 at 3:08 PM H. Nikolaus Schaller wrote: > > But I have tested with > > > spi->mode |= SPI_MODE_3; > > which should keep the mode intact. Right? That did not work either. > - make sure ("spi: fix client driver breakages when using GPIO descriptors") is in your tree - your pane

[PATCH net v2] lan743x: fix rx_napi_poll/interrupt ping-pong

2020-12-09 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Even if there is more rx data waiting on the chip, the rx napi poll fn will never run more than once - it will always read a few buffers, then bail out and re-arm interrupts. Which results in ping-pong between napi and interrupt. This defeats the purpose of napi, and is

Re: [PATCH 1/3] pwm: pca9685: Switch to atomic API

2020-11-19 Thread Sven Van Asbroeck
On Thu, Nov 19, 2020 at 5:00 AM Clemens Gruber wrote: > > > You appear to mix cached and uncached uses of prescale, > > is there a need for this? If not, perhaps pick one and use > > it consistently? > > Yes, sticking to the cached value is probably the way to go. > I would suggest going one step

Re: [PATCH 1/3] pwm: pca9685: Switch to atomic API

2020-11-19 Thread Sven Van Asbroeck
On Thu, Nov 19, 2020 at 11:00 AM Clemens Gruber wrote: > > One thing I noticed: The driver currently assumes that it comes out of > POR in "active" state (comment at end of probe and PM calls). > However, the SLEEP bit is set by default / after POR. Very good point, the comment is probably not co

Re: [BUG] SPI broken for SPI based panel drivers

2020-11-30 Thread Sven Van Asbroeck
Hi Nikolaus, thank you for reaching out ! On Mon, Nov 30, 2020 at 2:06 PM H. Nikolaus Schaller wrote: > > But reverting your patch brings back the display. So it appears as if it does > not > fix a breakage, rather breaks a previously working setup. The patch in question fixes an important brea

Re: [BUG] SPI broken for SPI based panel drivers

2020-11-30 Thread Sven Van Asbroeck
And probably also: @@ -226,8 +226,7 @@ static int spi_gpio_setup(struct spi_device *spi) if (spi_gpio->cs_gpios) { cs = spi_gpio->cs_gpios[spi->chip_select]; if (!spi->controller_state && cs) - status = gpiod_direction_output(cs, -

Re: [PATCH v2 1/4] pwm: pca9685: Switch to atomic API

2020-11-23 Thread Sven Van Asbroeck
Hi Clemens, some cool changes, thank you !! Constructive feedback below. On Mon, Nov 23, 2020 at 11:36 AM Clemens Gruber wrote: > > Changes since v1: > - Fixed a logic error > - Impoved PM runtime handling and fixed !CONFIG_PM > - Write default prescale reg value if invalid in probe > - Reuse ful

[PATCH net-next v1 1/2] lan743x: clean up software_isr function

2020-11-23 Thread Sven Van Asbroeck
From: Sven Van Asbroeck For no apparent reason, this function reads the INT_STS register, and checks if the software interrupt bit is set. These things have already been carried out by this function's only caller. Clean up by removing the redundant code. Tested-by: Sven Van Asbroeck # la

[PATCH net-next v1 2/2] lan743x: replace polling loop by wait_event_timeout()

2020-11-23 Thread Sven Van Asbroeck
From: Sven Van Asbroeck The driver's ISR sends a 'software interrupt' event to the probe() thread using the following method: - probe(): write 0 to flag, enable s/w interrupt - probe(): poll on flag, relax using usleep_range() - ISR: write 1 to flag Repla

Re: [PATCH v2 1/4] pwm: pca9685: Switch to atomic API

2020-11-24 Thread Sven Van Asbroeck
On Tue, Nov 24, 2020 at 10:19 AM Clemens Gruber wrote: > > Thanks for your review! My pleasure ! We are fortunate that you take the time & effort to improve this code.

Re: [PATCH v2 1/4] pwm: pca9685: Switch to atomic API

2020-11-24 Thread Sven Van Asbroeck
On Tue, Nov 24, 2020 at 10:29 AM Sven Van Asbroeck wrote: > > My pleasure ! We are fortunate that you take the time & effort to improve > this code. By "this code" I meant the pca9685 driver in general. Just making sure there's no possible misinterpretation :)

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-04 Thread Sven Van Asbroeck
On Fri, Dec 4, 2020 at 5:11 AM H. Nikolaus Schaller wrote: > > Anyways it is debatable if this is a bug at all. It is just a definition. I respectfully disagree. Prior to the fix, your panel's active-low chip select needed to be described in the devicetree with 'spi-cs-high'. That sounds very muc

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-04 Thread Sven Van Asbroeck
On Fri, Dec 4, 2020 at 11:52 AM H. Nikolaus Schaller wrote: > > >> Anyways it is debatable if this is a bug at all. It is just a definition. > > > > I respectfully disagree. Prior to the fix, your panel's active-low chip > > select > > needed to be described in the devicetree with 'spi-cs-high'.

Re: [PATCH net v1] net: dsa: ksz8795: use correct number of physical ports

2020-12-05 Thread Sven Van Asbroeck
Jakub, Andrew, On Fri, Dec 4, 2020 at 6:24 PM Jakub Kicinski wrote: > > All the port counts here are -1 compared to datasheets, so I'm assuming > the are not supposed to include the host facing port or something? > > Can you describe the exact problem you're trying to solve? > The ksz8795 driver

[PATCH net v1 1/2] net: dsa: microchip: fix devicetree parsing of cpu node

2020-12-05 Thread Sven Van Asbroeck
From: Sven Van Asbroeck On the ksz8795, if the devicetree contains a cpu node, devicetree parsing fails and the whole driver errors out. Fix the devicetree parsing code by making it use the correct number of ports. Fixes: 912aae27c6af ("net: dsa: microchip: really look for phy-mode in

[PATCH net v1 2/2] net: dsa: microchip: improve port count comments

2020-12-05 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Port counts in microchip dsa drivers can be quite confusing: on the ksz8795, ksz_chip_data->port_cnt excludes the cpu port, yet on the ksz9477, it includes the cpu port. Add comments to document this situation explicitly. Fixes: 912aae27c6af ("net: dsa: m

[PATCH net v1 1/2] lan743x: improve performance: fix rx_napi_poll/interrupt ping-pong

2020-12-05 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Even if the rx ring is completely full, and there is more rx data waiting on the chip, the rx napi poll fn will never run more than once - it will always immediately bail out and re-enable interrupts. Which results in ping-pong between napi and interrupt. This defeats

[PATCH net v1 2/2] lan743x: boost performance: limit PCIe bandwidth requirement

2020-12-05 Thread Sven Van Asbroeck
From: Sven Van Asbroeck To support jumbo frames, each rx ring dma buffer is 9K in size. But the chip only stores a single frame per dma buffer. When the chip is working with the default 1500 byte MTU, a 9K dma buffer goes from chip -> cpu per 1500 byte frame. This means that to get 1

Re: [PATCH v3 1/4] pwm: pca9685: Switch to atomic API

2020-11-24 Thread Sven Van Asbroeck
Hi Clemens, I checked the patch against the datasheet register definitions. More constructive feedback below. On Tue, Nov 24, 2020 at 1:10 PM Clemens Gruber wrote: > > The switch to the atomic API goes hand in hand with a few fixes to > previously experienced issues: > - The duty cycle is no long

Re: [PATCH v3 3/4] pwm: pca9685: Support staggered output ON times

2020-11-24 Thread Sven Van Asbroeck
On Tue, Nov 24, 2020 at 1:10 PM Clemens Gruber wrote: > > The PCA9685 supports staggered LED output ON times to minimize current > surges and reduce EMI. > When this new option is enabled, the ON times of each channel are > delayed by channel number x counter range / 16, which avoids asserting > a

Re: [PATCH v3 1/4] pwm: pca9685: Switch to atomic API

2020-11-25 Thread Sven Van Asbroeck
On Wed, Nov 25, 2020 at 3:35 AM Clemens Gruber wrote: > > > > > The datasheet I found for this chip indicates that every ALL_LED_XXX > > register > > is write-only. Those registers cannot be read back from the chip. > > > > Datasheet "Rev. 4 - 16 April 2015" > > Thanks, good catch! Would you agre

Re: [PATCH v3 1/4] pwm: pca9685: Switch to atomic API

2020-11-25 Thread Sven Van Asbroeck
On Wed, Nov 25, 2020 at 12:28 PM Clemens Gruber wrote: > > What's the lesser evil in your opinion, always returning 0 duty and > disabled for the ALL channel or caching it? > I would definitely suggest returning a pwm_state consisting of all zeroes for the "all led" channel, instead of caching st

Re: [PATCH v3 1/4] pwm: pca9685: Switch to atomic API

2020-11-25 Thread Sven Van Asbroeck
On Wed, Nov 25, 2020 at 2:46 PM Sven Van Asbroeck wrote: > > Then if you have time && motivation left, enable regmap cache. In a follow-up patch, after we arrived at a correctly working driver.

Re: [PATCH net-next v1 1/2] lan743x: clean up software_isr function

2020-11-26 Thread Sven Van Asbroeck
On Tue, Nov 24, 2020 at 7:17 PM Jakub Kicinski wrote: > > Applied both, thank you! Thank you Jakub !

Re: [PATCH v3] lan743x: fix for potential NULL pointer dereference with bare card

2020-11-26 Thread Sven Van Asbroeck
Hi Jakub, Sergej, On Tue, Nov 3, 2020 at 8:41 PM Jakub Kicinski wrote: > > On Mon, 2 Nov 2020 01:35:55 +0300 Sergej Bauer wrote: > > This is the 3rd revision of the patch fix for potential null pointer > > dereference > > with lan743x card. > > Applied, thanks! I noticed that this went into ne

Re: [PATCH v5 1/7] pwm: pca9685: Switch to atomic API

2020-12-17 Thread Sven Van Asbroeck
On Thu, Dec 17, 2020 at 11:48 AM Clemens Gruber wrote: > > I can initialize the values to 0 of course and check the file for other > places with missing initializations. > > Or would it be better to check the return codes of regmap_read/write in > such cases? I'm not sure. I think that checking t

Re: [PATCH v5 2/7] pwm: pca9685: Support hardware readout

2020-12-17 Thread Sven Van Asbroeck
On Thu, Dec 17, 2020 at 12:43 PM Clemens Gruber wrote: > > > > Conclusion: .get_state() will always return "pwm disabled", so why do we > > bother reading out the h/w? > > If there are no plans for the PWM core to call .get_state more often in > the future, we could just read out the period and re

Re: [PATCH v5 7/7] pwm: pca9685: Restrict period change for prescaler users

2020-12-17 Thread Sven Van Asbroeck
On Thu, Dec 17, 2020 at 1:07 PM Clemens Gruber wrote: > > As always, great review! Thank you! > My pleasure, it's great to help out. And thanks, you're the one doing all the hard work :)

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
On Tue, Dec 1, 2020 at 4:04 AM H. Nikolaus Schaller wrote: > > Then it should not have been applied to mainline but fully worked out and > tested. > That would be a reasonable expectation of a product. But Linux isn't a product, it's a hugely complex, shared system, which may form the basis of y

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
On Tue, Dec 1, 2020 at 8:36 AM H. Nikolaus Schaller wrote: > > Well I only complain because you wrote that you knew that it may > break something else. So it is known to induces a regression. We knew that it would fix an important, common problem, but we also knew that there is always a possibili

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
Hi Linus, On Tue, Dec 1, 2020 at 9:20 AM Linus Walleij wrote: > > I don't know if much can be done about it other than > having better programmers than me at the task. Or > less tired when they write the patch. etc. I don't think that we have many programmers that are better than you :) IMHO th

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
Nikolaus, On Tue, Dec 1, 2020 at 9:38 AM H. Nikolaus Schaller wrote: > > Let's work on a fix for the fix now. I tested spi-gpio on my system, by converting a built-in or hardware spi, to a spi-gpio. Interestingly, the patch has the opposite effect on my system: before the patch, spi-gpio did not

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
Nikolaus, On Tue, Dec 1, 2020 at 9:38 AM H. Nikolaus Schaller wrote: > > Let's work on a fix for the fix now. > Are you quite sure the chip-select of the tpo,td028ttec1 panel is active-high? A quick google produced a datasheet which seems to indicate that XCS is active-low? See page 17 here: ht

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
Hi Nikolaus, On Tue, Dec 1, 2020 at 11:43 AM H. Nikolaus Schaller wrote: > > You are right. It is active low. > In that case, we have a very simple solution, just remove the spi-cs-high, and things will work. In case of SPI CS gpios, the current kernel ignores all GPIO_ACTIVE_HIGH/LOW flags, an

Re: [Letux-kernel] [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
Hi Andreas, On Tue, Dec 1, 2020 at 11:44 AM Andreas Kemnade wrote: > > So if that one is really active-low, why did it ever work?! Because the spi gpio chipselect was broken (inverted), and 766c6b63aa04 ("spi: fix client driver breakages when using GPIO descriptors") fixes it.

Re: [BUG] SPI broken for SPI based panel drivers

2020-12-01 Thread Sven Van Asbroeck
Hi Nikolaus, On Tue, Dec 1, 2020 at 12:13 PM H. Nikolaus Schaller wrote: > > Am 01.12.2020 um 17:53 schrieb Sven Van Asbroeck : > > On Tue, Dec 1, 2020 at 11:43 AM H. Nikolaus Schaller > > wrote: > >> > >> You are right. It is active low. > >>

[PATCH net v1] net: dsa: ksz8795: use correct number of physical ports

2020-12-03 Thread Sven Van Asbroeck
From: Sven Van Asbroeck The ksz8795 has five physical ports, but the driver assumes it has only four. This prevents the driver from working correctly. Fix by indicating the correct number of physical ports. Fixes: e66f840c08a23 ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-02-05 Thread Sven Van Asbroeck
Hi Sergej, On Fri, Feb 5, 2021 at 10:09 AM Sergej Bauer wrote: > > Tests after applying patches [2/6] and [3/6] are: > $ ifmtu eth7 500 > $ sudo test_ber -l eth7 -c 1000 -n 100 -f500 --no-conf Thank you! Is there a way for me to run test_ber myself? Is this a standard, or a bespoke testing t

Re: [PATCH net-next v1 1/6] lan743x: boost performance on cpu archs w/o dma cache snooping

2021-02-05 Thread Sven Van Asbroeck
Hi Christoph, On Fri, Feb 5, 2021 at 4:31 AM Christoph Hellwig wrote: > > This is a pattern we've seen in a few other net driver, so we should > be ok. It just is rather hairy and needs a good justification, which > seems to be given here. Thank you so much for taking the time to look into this

Re: [PATCH] staging: fieldbus: arcx-anybus: constify static structs

2021-02-08 Thread Sven Van Asbroeck
s address in an > array of pointers to const struct attribute_group, and the only usage of > can_power_ops is to assign its address to the 'ops' field in the > regulator_desc struct, which is a pointer to const struct regulator_ops. > > Signed-off-by: Rikard Falkeborn Reviewed-by: Sven Van Asbroeck

Re: [PATCH net v3] lan743x: fix rx_napi_poll/interrupt ping-pong

2020-12-15 Thread Sven Van Asbroeck
Hi Jakub, On Fri, Dec 11, 2020 at 9:38 AM Sven Van Asbroeck wrote: > > From: Sven Van Asbroeck > > Even if there is more rx data waiting on the chip, the rx napi poll fn > will never run more than once - it will always read a few buffers, then > bail out and re-arm interrupts

[PATCH net v4] lan743x: fix rx_napi_poll/interrupt ping-pong

2020-12-15 Thread Sven Van Asbroeck
From: Sven Van Asbroeck Even if there is more rx data waiting on the chip, the rx napi poll fn will never run more than once - it will always read a few buffers, then bail out and re-arm interrupts. Which results in ping-pong between napi and interrupt. This defeats the purpose of napi, and is

Re: [PATCH net v4] lan743x: fix rx_napi_poll/interrupt ping-pong

2020-12-16 Thread Sven Van Asbroeck
Hi Jakub, On Wed, Dec 16, 2020 at 12:03 PM Jakub Kicinski wrote: > > Applied, thanks Sven. > > I'll leave it out of our stable submission, and expect Sasha's > autoselection bot to pick it up. This should give us more time > for testing before the patch makes its way to stable trees. > Let's see

Re: [PATCH net v1 2/2] lan743x: boost performance: limit PCIe bandwidth requirement

2020-12-16 Thread Sven Van Asbroeck
Hi Andrew, On Wed, Dec 9, 2020 at 9:10 AM Andrew Lunn wrote: > > 9K is not a nice number, since for each allocation it probably has to > find 4 contiguous pages. See what the performance difference is with > 2K, 4K and 8K. If there is a big difference, you might want to special > case when the MT

<    1   2   3   4   5   6   >