[PATCH] dma: dw-axi-dmac: ensure segment lengths obey reg_width limits

Ouverte
#7,543 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
55/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
c, linux, raspberry-pi

Piste de recherche

Start with dw_axi_dma_chan_prep_slave_sg() and review the attached patch, then use utils/hdmi-pio/hdmi-pio.c from the linked hdmi-dbg-ctl repository to reproduce the alignment error on a Raspberry Pi 5. Done means the DMA path accepts segment lengths consistent with reg_width and the sample command no longer reports the device-width alignment failure.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Describe the bug

While experimenting with the rp1-pio driver of the Raspberry Pi 5 I got 'length X not aligned to device width 4" messages, preventing the DMA to work.

Debugging showed that the dw_axi_dma_chan_prep_slave_sg() did not take the reg_width into account.

Patch fixing this is attached.

0001-dma-dw-axi-dmac-ensure-segment-lengths-obey-reg_widt.patch

Steps to reproduce the behaviour

Test utility is found here: https://git.linuxtv.org/hverkuil/hdmi-dbg-ctl.git/tree/utils/hdmi-pio?h=hdmi-dbg-ctl-v2

gcc -o hdmi-pio hdmi-pio.c
./hdmi-pio 20 2 10 # sample GPIO 20+21 at 10 MHz

Device (s)

Raspberry Pi 5

System

$ cat /etc/rpi-issue
Raspberry Pi reference 2024-11-19
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 891df1e21ed2b6099a2e6a13e26c91dea44b34d4, stage4
$ vcgencmd version
2026/06/17 00:06:53
Copyright (c) 2012 Broadcom
version 6219bf00 (release) (embedded)
$ uname -a
Linux rpi5 6.18.42-rpi5 #20 SMP PREEMPT Sun Aug 9 10:17:09 CEST 2026 aarch64 GNU/Linux

Logs

No response

Additional context

No response

Langage dominant
C
Étoiles
13.3k
Forks
5.5k
Merge moyen
3 j 20 h
PR mergées (30 j)
27

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de raspberrypi/linux

Toutes les issues de raspberrypi/linux

Issues similaires

Plus d'issues C

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.