From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claude Code Review Bot To: dri-devel-reviews@example.com Subject: Claude review: drm/sun4i: Use backend/mixer as dedicated DMA device Date: Wed, 11 Mar 2026 13:45:58 +1000 Message-ID: In-Reply-To: <20260310032511.2545500-5-wenst@chromium.org> References: <20260310032511.2545500-1-wenst@chromium.org> <20260310032511.2545500-5-wenst@chromium.org> X-Mailer: Claude Code Patch Reviewer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Patch Review This patch replaces the `of_dma_configure()` hack with proper `drm_dev_set_dma_dev()` calls in both `sun4i_backend.c` and `sun8i_mixer.c`. The pattern is identical in both files: ```c - if (of_property_present(dev->of_node, "interconnects")) { - ret = of_dma_configure(drm->dev, dev->of_node, true); - if (ret) - return ret; - } + if (drm_dev_dma_dev(drm) == drm->dev) + drm_dev_set_dma_dev(drm, dev); ``` **Behavioral change worth noting**: The old code was conditional on the DT property (`"interconnects"` for backend, `"iommus"` for mixer). The new code unconditionally sets the DMA device (on first bind). This means even devices without IOMMU or interconnect properties will now use the backend/mixer as the DMA device instead of the virtual display device. This should be fine since the backend/mixer is the actual device doing DMA regardless of whether an IOMMU is present, but it is a subtle change from the original behavior. **Comment nit**: The comment in the mixer says "backends" but should say "mixers": ```c + * Always use the first bound backend as the DMA device. While ``` The backend comment is correct for `sun4i_backend.c`, but this same text was copied into `sun8i_mixer.c` where it should say "mixer" instead of "backend". This is a minor copy-paste issue in the comments. **Unbind consideration**: Neither the backend nor the mixer `unbind` function resets the DMA device. If the component providing the DMA device is unbound while the DRM device persists, `drm_device.dma_dev` would point to a potentially freed device. However, looking at the existing code, the `of_dma_configure` approach had a similar issue (the DRM device would retain DMA configuration from a now-unbound component), and component unbind typically tears down the entire DRM device anyway. This is not a regression introduced by this patch. No blocking issues, but the comment in `sun8i_mixer.c` should be fixed to say "mixer" instead of "backend". --- Generated by Claude Code Patch Reviewer