PCI: rcar-gen4: Fix -Wvoid-pointer-to-enum-cast error
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Wed, 20 Dec 2023 05:38:29 +0000 (14:38 +0900)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Sat, 6 Jan 2024 08:06:50 +0000 (08:06 +0000)
When building with clang 18 with the -Werror compiler option enabled,
the following error will be reported:

  drivers/pci/controller/dwc/pcie-rcar-gen4.c:439:15: error: cast to smaller integer type 'enum dw_pcie_device_mode' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]
    439 |         rcar->mode = (enum dw_pcie_device_mode)of_device_get_match_data(&rcar->pdev->dev);

To fix this issue, cast the data the of_device_get_match_data() helper
returns to uintptr_t rather than the dw_pcie_device_mode enum.

[kwilczynski: commit log]
Link: https://lore.kernel.org/linux-pci/20231220053829.1921187-7-yoshihiro.shimoda.uh@renesas.com
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/pci/controller/dwc/pcie-rcar-gen4.c

index 70492f562e48f3d39e8f230148f3f360ddb99338..a1eb10e878f14cde23b3ac944b981fbc4da8a11a 100644 (file)
@@ -436,7 +436,7 @@ static void rcar_gen4_remove_dw_pcie_ep(struct rcar_gen4_pcie *rcar)
 /* Common */
 static int rcar_gen4_add_dw_pcie(struct rcar_gen4_pcie *rcar)
 {
-       rcar->mode = (enum dw_pcie_device_mode)of_device_get_match_data(&rcar->pdev->dev);
+       rcar->mode = (uintptr_t)of_device_get_match_data(&rcar->pdev->dev);
 
        switch (rcar->mode) {
        case DW_PCIE_RC_TYPE: