Messages in this thread | | | Subject | Re: [PATCH v3 20/25] clk: bcm: rpi: Add an enum for the firmware clocks | From | Nicolas Saenz Julienne <> | Date | Fri, 05 Jun 2020 15:09:15 +0200 |
| |
Hi Maxime,
On Fri, 2020-06-05 at 14:04 +0200, Nicolas Saenz Julienne wrote: > On Wed, 2020-05-27 at 17:45 +0200, Maxime Ripard wrote: > > While the firmware allows us to discover the available clocks, we need to > > discriminate those clocks to only register the ones meaningful to Linux. > > The firmware also doesn't provide a clock name, so having a list of the ID > > will help us to give clocks a proper name later on. > > > > Signed-off-by: Maxime Ripard <maxime@cerno.tech> > > --- > > drivers/clk/bcm/clk-raspberrypi.c | 23 +++++++++++++++++++---- > > 1 file changed, 19 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk- > > raspberrypi.c > > index 5f4e2d49432f..eebd16040f8a 100644 > > --- a/drivers/clk/bcm/clk-raspberrypi.c > > +++ b/drivers/clk/bcm/clk-raspberrypi.c > > @@ -18,7 +18,23 @@ > > > > #include <soc/bcm2835/raspberrypi-firmware.h> > > > > -#define RPI_FIRMWARE_ARM_CLK_ID 0x00000003 > > +enum rpi_firmware_clk_id { > > + RPI_FIRMWARE_EMMC_CLK_ID = 1, > > + RPI_FIRMWARE_UART_CLK_ID, > > + RPI_FIRMWARE_ARM_CLK_ID, > > + RPI_FIRMWARE_CORE_CLK_ID, > > + RPI_FIRMWARE_V3D_CLK_ID, > > + RPI_FIRMWARE_H264_CLK_ID, > > + RPI_FIRMWARE_ISP_CLK_ID, > > + RPI_FIRMWARE_SDRAM_CLK_ID, > > + RPI_FIRMWARE_PIXEL_CLK_ID, > > + RPI_FIRMWARE_PWM_CLK_ID, > > + RPI_FIRMWARE_HEVC_CLK_ID, > > + RPI_FIRMWARE_EMMC2_CLK_ID, > > + RPI_FIRMWARE_M2MC_CLK_ID, > > + RPI_FIRMWARE_PIXEL_BVB_CLK_ID, > > + RPI_FIRMWARE_NUM_CLK_ID, > > +}; > > > > #define RPI_FIRMWARE_STATE_ENABLE_BIT BIT(0) > > #define RPI_FIRMWARE_STATE_WAIT_BIT BIT(1) > > @@ -31,8 +47,6 @@ > > > > #define A2W_PLL_FRAC_BITS 20 > > > > -#define NUM_FW_CLKS 16 > > - > > struct raspberrypi_clk { > > struct device *dev; > > struct rpi_firmware *firmware; > > @@ -320,7 +334,8 @@ static int raspberrypi_clk_probe(struct platform_device > > *pdev) > > rpi->firmware = firmware; > > platform_set_drvdata(pdev, rpi); > > > > - clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, NUM_FW_CLKS), > > + clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, > > + RPI_FIRMWARE_NUM_CLK_ID), > > nit: you're allocating one structure too many right?
Nevermind this comment, as pointed out privately by Phil Elwell, I forgot the firmware clk description structure starts at 0. So we need to make space for that.
It would maybe make sense to add RPI_FIRMWARE_RESERVED_CLK_ID above the EMMC clk entry. Although it's just a suggestion.
> Acked-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > Regards, > Nicolas >
[unhandled content-type:application/pgp-signature] | |