Re: [PATCH] staging: vchiq_arm: Add 36-bit address support

From: nicolas saenz julienne
Date: Fri Oct 15 2021 - 04:20:31 EST


Hi Mwesigwa,

On Thu, 2021-10-14 at 18:32 -0400, Mwesigwa Guma wrote:
> Cc: Nicolas Saenz Julienne <nsaenz@xxxxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Cc: Stefan Wahren <stefan.wahren@xxxxxxxx>
> Cc: Ojaswin Mujoo <ojaswin98@xxxxxxxxx>
> Cc: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Cc: Amarjargal Gundjalam <amarjargal16@xxxxxxxxx>
> Cc: Phil Elwell <phil@xxxxxxxxxxxxxxx>
> Cc: bcm-kernel-feedback-list@xxxxxxxxxxxx
> Cc: linux-rpi-kernel@xxxxxxxxxxxxxxxxxxx
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Cc: linux-staging@xxxxxxxxxxxxxxx
> Cc: fedora-rpi@xxxxxxxxxxxxxxxx
> Cc: Joel Savitz <jsavitz@xxxxxxxxxx>
> Cc: Chukpozohn Toe <ctoe@xxxxxxxxxx>
> Cc: Clark Williams <clark@xxxxxxxxxx>
>
> This is a forward port of Phil Elwell's commit from the Raspberry Pi
> Linux fork described as follows [1]:
>
> Conditional on a new compatible string, change the pagelist encoding
> such that the top 24 bits are the pfn, leaving 8 bits for run length
> (-1), giving a 36-bit address range.
>
> Manage the split between addresses for the VPU and addresses for the
> 40-bit DMA controller with a dedicated DMA device pointer that on non-
> BCM2711 platforms is the same as the main VCHIQ device. This allows
> the VCHIQ node to stay in the usual place in the DT.
>
> This commit enables VCHIQ device access on a Raspberry Pi 4B running the
> mainline Linux kernel.
>
> Tested on Fedora Linux running on a Raspberry Pi 4B.
>
> [1]: https://github.com/raspberrypi/linux/commit/97268fd23eb8d08dc74eac5e3fd697303de26610
>
> Signed-off-by: Mwesigwa Guma <mguma@xxxxxxxxxx>

I see a lot happening on this patch. You're:

- Registering a number of child devices that don't seem to exist upstream
('vcsm-cma', 'bcm2835-codec', and 'bcm2825-isp').
- Updating vchiq_register_child().
- Adding brcm,bcm2711-vchiq's compatible string (no dt bindings? see
Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-vchiq.txt).
- Looking for 'brcm,bcm2711-dma' in the devicetree.
- Using 'brcm,bcm2711-dma's' device node to re-generate the page lists.

Each one of these should at least be a separate patch, which proper
justification[1]. You can't just take downstream fixes, rebase them and send
them upstream. You really have to own them, undestand what's happening and
repurpose everything so it's up to standard even if it means diverging from
what downstream is doing.

Regards,
Nicolas

[1] Have a look at Documentation/process/submitting-patches.rst.