From: Andrea della Porta <andrea.porta@suse.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Andrea della Porta <andrea.porta@suse.com>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Florian Fainelli <florian.fainelli@broadcom.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
Linus Walleij <linus.walleij@linaro.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Derek Kiernan <derek.kiernan@amd.com>,
Dragan Cvetic <dragan.cvetic@amd.com>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Saravana Kannan <saravanak@google.com>,
Bjorn Helgaas <bhelgaas@google.com>,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-rpi-kernel@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
netdev@vger.kernel.org, linux-pci@vger.kernel.org,
linux-arch@vger.kernel.org, Lee Jones <lee@kernel.org>,
Andrew Lunn <andrew@lunn.ch>, Stefan Wahren <wahrenst@gmx.net>
Subject: Re: [PATCH 00/11] Add support for RaspberryPi RP1 PCI device using a DT overlay
Date: Thu, 29 Aug 2024 15:11:38 +0200 [thread overview]
Message-ID: <ZtBzis5CzQMm8loh@apocalypse> (raw)
In-Reply-To: <d97dbb0b-2e9c-4a62-b6c2-c1ec3fa1225b@kernel.org>
Hi Krzysztof,
On 11:50 Thu 22 Aug , Krzysztof Kozlowski wrote:
> On 22/08/2024 11:05, Andrea della Porta wrote:
> > Hi Krzysztof,
> >
> > On 15:42 Wed 21 Aug , Krzysztof Kozlowski wrote:
> >> On 20/08/2024 16:36, Andrea della Porta wrote:
> >>> RP1 is an MFD chipset that acts as a south-bridge PCIe endpoint sporting
> >>> a pletora of subdevices (i.e. Ethernet, USB host controller, I2C, PWM,
> >>> etc.) whose registers are all reachable starting from an offset from the
> >>> BAR address. The main point here is that while the RP1 as an endpoint
> >>> itself is discoverable via usual PCI enumeraiton, the devices it contains
> >>> are not discoverable and must be declared e.g. via the devicetree.
> >>>
> >>> This patchset is an attempt to provide a minimum infrastructure to allow
> >>> the RP1 chipset to be discovered and perpherals it contains to be added
> >>> from a devictree overlay loaded during RP1 PCI endpoint enumeration.
> >>> Followup patches should add support for the several peripherals contained
> >>> in RP1.
> >>>
> >>> This work is based upon dowstream drivers code and the proposal from RH
> >>> et al. (see [1] and [2]). A similar approach is also pursued in [3].
> >>
> >> Looking briefly at findings it seems this was not really tested by
> >> automation and you expect reviewers to find issues which are pointed out
> >> by tools. That's not nice approach. Reviewer's time is limited, while
> >> tools do it for free. And the tools are free - you can use them without
> >> any effort.
> >
> > Sorry if I gave you that impression, but this is not obviously the case.
>
> Just look at number of reports... so many sparse reports that I wonder
> how it is not the case.
>
> And many kbuild reports.
Ack.
>
> > I've spent quite a bit of time in trying to deliver a patchset that ease
> > your and others work, at least to the best I can. In fact, I've used many
> > of the checking facilities you mentioned before sending it, solving all
> > of the reported issues, except the ones for which there are strong reasons
> > to leave untouched, as explained below.
> >
> >>
> >> It does not look like you tested the DTS against bindings. Please run
> >> `make dtbs_check W=1` (see
> >> Documentation/devicetree/bindings/writing-schema.rst or
> >> https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/
> >> for instructions).
> >
> > #> make W=1 dt_binding_check DT_SCHEMA_FILES=raspberrypi,rp1-gpio.yaml
> > CHKDT Documentation/devicetree/bindings
> > LINT Documentation/devicetree/bindings
> > DTEX Documentation/devicetree/bindings/pinctrl/raspberrypi,rp1-gpio.example.dts
> > DTC_CHK Documentation/devicetree/bindings/pinctrl/raspberrypi,rp1-gpio.example.dtb
> >
> > #> make W=1 dt_binding_check DT_SCHEMA_FILES=raspberrypi,rp1-clocks.yaml
> > CHKDT Documentation/devicetree/bindings
> > LINT Documentation/devicetree/bindings
> > DTEX Documentation/devicetree/bindings/clock/raspberrypi,rp1-clocks.example.dts
> > DTC_CHK Documentation/devicetree/bindings/clock/raspberrypi,rp1-clocks.example.dtb
> >
> > I see no issues here, in case you've found something different, I kindly ask you to post
> > the results.
> >
> > #> make W=1 CHECK_DTBS=y broadcom/rp1.dtbo
> > DTC arch/arm64/boot/dts/broadcom/rp1.dtbo
> > arch/arm64/boot/dts/broadcom/rp1.dtso:37.24-42.7: Warning (simple_bus_reg): /fragment@0/__overlay__/rp1@0/clk_xosc: missing or empty reg/ranges property
> > arch/arm64/boot/dts/broadcom/rp1.dtso:44.26-49.7: Warning (simple_bus_reg): /fragment@0/__overlay__/rp1@0/macb_pclk: missing or empty reg/ranges property
> > arch/arm64/boot/dts/broadcom/rp1.dtso:51.26-56.7: Warning (simple_bus_reg): /fragment@0/__overlay__/rp1@0/macb_hclk: missing or empty reg/ranges property
> > arch/arm64/boot/dts/broadcom/rp1.dtso:14.15-173.5: Warning (avoid_unnecessary_addr_size): /fragment@0/__overlay__: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" property
> >
> > I believe that These warnings are unavoidable, and stem from the fact that this
> > is quite a peculiar setup (PCI endpoint which dynamically loads platform driver
> > addressable via BAR).
> > The missing reg/ranges in the threee clocks are due to the simple-bus of the
> > containing node to which I believe they should belong: I did a test to place
>
> This is not the place where they belong. non-MMIO nodes should not be
> under simple-bus.
Ack.
>
> > those clocks in the same dtso under root or /clocks node but AFAIK it doesn't
> > seems to work. I could move them in a separate dtso to be loaded before the main
>
> Well... who instantiates them? If they are in top-level, then
> CLK_OF_DECLARE which is not called at your point?
>
> You must instantiate clocks different way, since they are not part of
> "rp1". That's another bogus DT description... external oscilator is not
> part of RP1.
>
Ok, I'll dive into that and see what I can come up with. Many thanks for
this feedback.
>
> > one but this is IMHO even more cumbersome than having a couple of warnings in
> > CHECK_DTBS.
> > Of course, if you have any suggestion on how to improve it I would be glad to
> > discuss.
> > About the last warning about the address/size-cells, if I drop those two lines
> > in the _overlay_ node it generates even more warning, so again it's a "don't fix"
> > one.
> >
> >>
> >> Please run standard kernel tools for static analysis, like coccinelle,
> >> smatch and sparse, and fix reported warnings. Also please check for
> >> warnings when building with W=1. Most of these commands (checks or W=1
> >> build) can build specific targets, like some directory, to narrow the
> >> scope to only your code. The code here looks like it needs a fix. Feel
> >> free to get in touch if the warning is not clear.
> >
> > I didn't run those static analyzers since I've preferred a more "manual" aproach
> > by carfeully checking the code, but I agree that something can escape even the
> > more carefully executed code inspection so I will add them to my arsenal from
> > now on. Thanks for the heads up.
>
> I don't care if you do not run static analyzers if you produce good
> code. But if you produce bugs which could have been easily spotted with
> sparser, than it is different thing.
>
> Start running static checkers instead of asking reviewers to do that.
Ack.
>
> >
> >>
> >> Please run scripts/checkpatch.pl and fix reported warnings. Then please
> >> run `scripts/checkpatch.pl --strict` and (probably) fix more warnings.
> >> Some warnings can be ignored, especially from --strict run, but the code
> >> here looks like it needs a fix. Feel free to get in touch if the warning
> >> is not clear.
> >>
> >
> > Again, most of checkpatch's complaints have been addressed, the remaining
> > ones I deemed as not worth fixing, for example:>
> > #> scripts/checkpatch.pl --strict --codespell tmp/*.patch
> >
> > WARNING: please write a help paragraph that fully describes the config symbol
> > #42: FILE: drivers/clk/Kconfig:91:
> > +config COMMON_CLK_RP1
> > + tristate "Raspberry Pi RP1-based clock support"
> > + depends on PCI || COMPILE_TEST
> > + depends on COMMON_CLK
> > + help
> > + Enable common clock framework support for Raspberry Pi RP1.
> > + This mutli-function device has 3 main PLLs and several clock
> > + generators to drive the internal sub-peripherals.
> > +
> >
> > I don't understand this warning, the paragraph is there and is more or less similar
> > to many in the same file that are already upstream. Checkpatch bug?
> >
> >
> > CHECK: Alignment should match open parenthesis
> > #1541: FILE: drivers/clk/clk-rp1.c:1470:
> > + if (WARN_ON_ONCE(clock_data->num_std_parents > AUX_SEL &&
> > + strcmp("-", clock_data->parents[AUX_SEL])))
> >
> > This would have worsen the code readability.
> >
> >
> > WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP
> > #673: FILE: drivers/pinctrl/pinctrl-rp1.c:600:
> > + return -ENOTSUPP;
> >
> > This I must investigate: I've already tried to fix it before sending the patchset
> > but for some reason it wouldn't work, so I planned to fix it in the upcoming
> > releases.
> >
> >
> > WARNING: externs should be avoided in .c files
> > #331: FILE: drivers/misc/rp1/rp1-pci.c:58:
> > +extern char __dtbo_rp1_pci_begin[];
> >
> > True, but in this case we don't have a symbol that should be exported to other
> > translation units, it just needs to be referenced inside the driver and
> > consumed locally. Hence it would be better to place the extern in .c file.
> >
> >
> > Apologies for a couple of other warnings that I could have seen in the first
> > place, but honestly they don't seems to be a big deal (one typo and on over
> > 100 chars comment, that will be fixed in next patch version).
>
> Again, judging by number of reports from checkers that is a big deal,
> because it is your task to run the tools.
Ack.
Many thanks,
Andrea
>
> Best regards,
> Krzysztof
>
next prev parent reply other threads:[~2024-08-29 13:11 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-20 14:36 [PATCH 00/11] Add support for RaspberryPi RP1 PCI device using a DT overlay Andrea della Porta
2024-08-20 14:36 ` [PATCH 01/11] dt-bindings: clock: Add RaspberryPi RP1 clock bindings Andrea della Porta
2024-08-20 16:19 ` Conor Dooley
2024-08-20 18:25 ` Andrea della Porta
2024-08-21 11:46 ` Conor Dooley
2024-08-22 9:35 ` Andrea della Porta
2024-08-22 9:52 ` Krzysztof Kozlowski
2024-08-22 16:23 ` Conor Dooley
2024-08-23 18:21 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 02/11] dt-bindings: pinctrl: Add RaspberryPi RP1 gpio/pinctrl/pinmux bindings Andrea della Porta
2024-08-21 8:42 ` Krzysztof Kozlowski
2024-08-30 10:22 ` Andrea della Porta
2024-08-30 11:46 ` Krzysztof Kozlowski
2024-09-02 8:44 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 03/11] PCI: of_property: Sanitize 32 bit PCI address parsed from DT Andrea della Porta
2024-08-21 15:24 ` Bjorn Helgaas
2024-08-26 19:51 ` Andrea della Porta
2024-09-03 22:26 ` Bjorn Helgaas
2024-09-05 16:43 ` Andrea della Porta
2024-09-05 20:16 ` Bjorn Helgaas
2024-09-27 6:48 ` Andrea della Porta
2024-09-28 20:17 ` Bjorn Helgaas
2024-10-06 11:20 ` Andrea della Porta
2024-10-08 1:08 ` Bjorn Helgaas
2024-10-18 12:41 ` Andrea della Porta
2024-10-18 22:28 ` Bjorn Helgaas
2024-10-19 8:46 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 04/11] of: address: Preserve the flags portion on 1:1 dma-ranges mapping Andrea della Porta
2024-08-21 0:16 ` Rob Herring
2024-08-21 8:18 ` Andrea della Porta
2024-08-26 21:29 ` Rob Herring
2024-08-29 10:13 ` Andrea della Porta
2024-08-29 13:18 ` Rob Herring
2024-08-29 16:26 ` Andrea della Porta
2024-08-30 19:37 ` Rob Herring
2024-09-03 9:09 ` Herve Codina
2024-09-03 9:33 ` Andrea della Porta
2024-09-03 18:55 ` Rob Herring
2024-09-03 16:15 ` Andrea della Porta
2024-09-03 18:46 ` Rob Herring
2024-09-04 8:33 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 05/11] vmlinux.lds.h: Preserve DTB sections from being discarded after init Andrea della Porta
2024-08-30 19:46 ` Stephen Boyd
2024-09-03 12:29 ` Andrea della Porta
2024-09-21 20:47 ` Stephen Boyd
2024-09-22 8:14 ` Masahiro Yamada
2024-09-23 18:13 ` Stephen Boyd
2024-09-24 2:45 ` Masahiro Yamada
2024-08-20 14:36 ` [PATCH 06/11] clk: rp1: Add support for clocks provided by RP1 Andrea della Porta
2024-08-21 13:17 ` Simon Horman
2024-08-22 10:04 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 07/11] pinctrl: rp1: Implement RaspberryPi RP1 gpio support Andrea della Porta
2024-08-21 8:45 ` Krzysztof Kozlowski
2024-08-30 10:39 ` Andrea della Porta
2024-08-21 9:22 ` kernel test robot
2024-08-21 12:06 ` kernel test robot
2024-08-21 13:27 ` Simon Horman
2024-08-23 17:16 ` Andrea della Porta
2024-08-21 20:51 ` kernel test robot
2024-08-26 8:59 ` Linus Walleij
2024-08-28 15:24 ` Andrea della Porta
2024-09-02 8:31 ` Linus Walleij
2024-08-20 14:36 ` [PATCH 08/11] misc: rp1: RaspberryPi RP1 misc driver Andrea della Porta
2024-08-21 8:38 ` Krzysztof Kozlowski
2024-08-21 14:20 ` Krzysztof Kozlowski
2024-08-22 14:33 ` Andrea della Porta
2024-08-22 14:46 ` Krzysztof Kozlowski
2024-08-30 13:49 ` Andrea della Porta
2024-08-30 14:21 ` Andrew Lunn
2024-09-03 14:56 ` Andrea della Porta
2024-08-30 16:52 ` Krzysztof Kozlowski
2024-09-03 15:15 ` Andrea della Porta
2024-09-03 18:27 ` Krzysztof Kozlowski
2024-09-05 16:33 ` Andrea della Porta
2024-09-05 16:52 ` Krzysztof Kozlowski
2024-09-05 18:54 ` Andrea della Porta
2024-09-05 21:20 ` Krzysztof Kozlowski
2024-08-21 13:07 ` kernel test robot
2024-08-21 13:49 ` kernel test robot
2024-08-21 16:20 ` Stefan Wahren
2024-08-23 9:44 ` Andrea della Porta
2024-08-23 10:23 ` Stefan Wahren
2024-08-23 16:31 ` Andrea della Porta
2024-08-30 18:27 ` Rob Herring
2024-09-02 9:34 ` Andrea della Porta
2024-08-21 16:55 ` Bjorn Helgaas
2024-08-23 10:21 ` Andrea della Porta
2024-08-21 17:56 ` kernel test robot
2024-08-24 1:53 ` Greg Kroah-Hartman
2024-08-26 9:07 ` Andrea della Porta
2024-08-26 9:18 ` Greg Kroah-Hartman
2024-08-20 14:36 ` [PATCH 09/11] arm64: defconfig: Enable RP1 misc/clock/gpio drivers as built-in Andrea della Porta
2024-08-21 8:47 ` Krzysztof Kozlowski
2024-08-30 22:24 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 10/11] net: macb: Add support for RP1's MACB variant Andrea della Porta
2024-08-20 15:13 ` Andrew Lunn
2024-08-20 18:31 ` Andrea della Porta
2024-08-21 8:49 ` Krzysztof Kozlowski
2024-08-30 22:32 ` Andrea della Porta
2024-08-21 17:01 ` Florian Fainelli
2024-08-26 20:03 ` Andrea della Porta
2024-08-20 14:36 ` [PATCH 11/11] arm64: dts: rp1: Add support for MACB contained in RP1 Andrea della Porta
2024-08-21 8:43 ` Krzysztof Kozlowski
2024-08-30 22:33 ` Andrea della Porta
2024-08-21 17:02 ` Florian Fainelli
2024-08-26 20:18 ` Andrea della Porta
2024-08-21 13:42 ` [PATCH 00/11] Add support for RaspberryPi RP1 PCI device using a DT overlay Krzysztof Kozlowski
2024-08-22 9:05 ` Andrea della Porta
2024-08-22 9:50 ` Krzysztof Kozlowski
2024-08-29 13:11 ` Andrea della Porta [this message]
2024-08-22 13:04 ` Andrew Lunn
2024-08-29 12:01 ` Andrea della Porta
2024-08-29 13:04 ` Andrew Lunn
2024-08-29 13:13 ` Andrea della Porta
2024-08-30 5:21 ` Andrea della Porta
2024-08-30 14:10 ` Andrew Lunn
2024-09-02 9:21 ` Andrea della Porta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZtBzis5CzQMm8loh@apocalypse \
--to=andrea.porta@suse.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=derek.kiernan@amd.com \
--cc=devicetree@vger.kernel.org \
--cc=dragan.cvetic@amd.com \
--cc=edumazet@google.com \
--cc=florian.fainelli@broadcom.com \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=mturquette@baylibre.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=sboyd@kernel.org \
--cc=wahrenst@gmx.net \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox