soc: sunxi: sram: Save a pointer to the OF match data
authorSamuel Holland <samuel@sholland.org>
Mon, 15 Aug 2022 04:12:45 +0000 (23:12 -0500)
committerJernej Skrabec <jernej.skrabec@gmail.com>
Sun, 18 Sep 2022 20:54:25 +0000 (22:54 +0200)
It is inefficient to match the compatible string every time the regmap
is accessed.

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20220815041248.53268-9-samuel@sholland.org
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
drivers/soc/sunxi/sunxi_sram.c

index 9622fd4..7c6fb17 100644 (file)
@@ -305,9 +305,7 @@ static const struct sunxi_sramc_variant sun50i_h616_sramc_variant = {
 static bool sunxi_sram_regmap_accessible_reg(struct device *dev,
                                             unsigned int reg)
 {
-       const struct sunxi_sramc_variant *variant;
-
-       variant = of_device_get_match_data(dev);
+       const struct sunxi_sramc_variant *variant = dev_get_drvdata(dev);
 
        if (reg < SUNXI_SRAM_EMAC_CLOCK_REG)
                return false;
@@ -340,6 +338,8 @@ static int __init sunxi_sram_probe(struct platform_device *pdev)
        if (!variant)
                return -EINVAL;
 
+       dev_set_drvdata(dev, (struct sunxi_sramc_variant *)variant);
+
        base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(base))
                return PTR_ERR(base);