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

From: Stefan Wahren
Date: Sun Oct 17 2021 - 09:31:56 EST


Hi Mwesigwa,

additional to Nicolas' comments.

Am 15.10.21 um 10:19 schrieb nicolas saenz julienne:
> 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.
>From my understanding this also requires changes to the DMA driver (40
bit support) and the BCM2711 dts files, which are also not upstream yet
(the DMA changes not the files itself).
>>
>> 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).
In order to get this part accepted, i send a series to convert the
dt-binding to YAML format.
> - 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.

AFAIU it's preferred to get this driver out of staging (take a look at
the TODO file) before implementing new features.

Best regards

>
> Regards,
> Nicolas
>
> [1] Have a look at Documentation/process/submitting-patches.rst.
>