Hi,
this line https://github.com/raspberrypi/linux/b ... .c#L769 , added by this patch https://github.com/raspberrypi/linux/co ... 2d42f45a1 looks like a bit suspicious:
- it doesn't seem to be be related to that patch subject at all since it's in the 2711 (and older) path only, while the patch seems to deal with newer soc.
- it uses BIT(31) in spite of the correct macro BCM2835_DMA_RESET, somehow suggesting it has been placed there temporarily or for testing purposes.
- the only other code path that reset the channel is at the end of bcm2835_dma_abort(): while it sounds legit to call it also while starting a new desc to clean any pending activities, why it should be done only on non 40 bit channels? I see the symmetry here since the same apply to dma_abort() code, so I guess this is something not really explained in the datasheet...
- testing using dmatest.ko both with and without that line of code does not seems to achieve any different results in practice, maybe it's some peculiar path that must be exerted?
Is that line really needed to fix some bug or regression (maybe related to an older patch) or is it safe to delete it?
Many thanks
this line https://github.com/raspberrypi/linux/b ... .c#L769 , added by this patch https://github.com/raspberrypi/linux/co ... 2d42f45a1 looks like a bit suspicious:
- it doesn't seem to be be related to that patch subject at all since it's in the 2711 (and older) path only, while the patch seems to deal with newer soc.
- it uses BIT(31) in spite of the correct macro BCM2835_DMA_RESET, somehow suggesting it has been placed there temporarily or for testing purposes.
- the only other code path that reset the channel is at the end of bcm2835_dma_abort(): while it sounds legit to call it also while starting a new desc to clean any pending activities, why it should be done only on non 40 bit channels? I see the symmetry here since the same apply to dma_abort() code, so I guess this is something not really explained in the datasheet...
- testing using dmatest.ko both with and without that line of code does not seems to achieve any different results in practice, maybe it's some peculiar path that must be exerted?
Is that line really needed to fix some bug or regression (maybe related to an older patch) or is it safe to delete it?
Many thanks
Statistics: Posted by sfaragnaus — Thu Feb 29, 2024 2:05 pm