Commit 6963e46c authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab

media: ti-vpe: cal: Inline cal_get_camerarx_regmap() in caller

The cal_get_camerarx_regmap() function is called in a single place.
Inline it in its caller, as it results in a clear code flow.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: default avatarBenoit Parrot <bparrot@ti.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 2cabb7ad
...@@ -960,20 +960,36 @@ static struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, ...@@ -960,20 +960,36 @@ static struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal,
return phy; return phy;
} }
static struct regmap *cal_get_camerarx_regmap(struct cal_dev *cal) static int cal_camerarx_init_regmap(struct cal_dev *cal)
{ {
struct platform_device *pdev = cal->pdev; struct device_node *np = cal->pdev->dev.of_node;
struct regmap_config config = { }; struct regmap_config config = { };
struct regmap *regmap; struct regmap *syscon;
void __iomem *base;
struct resource *res; struct resource *res;
unsigned int offset;
void __iomem *base;
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, syscon = syscon_regmap_lookup_by_phandle_args(np, "ti,camerrx-control",
1, &offset);
if (!IS_ERR(syscon)) {
cal->syscon_camerrx = syscon;
cal->syscon_camerrx_offset = offset;
return 0;
}
dev_warn(&cal->pdev->dev, "failed to get ti,camerrx-control: %ld\n",
PTR_ERR(syscon));
/*
* Backward DTS compatibility. If syscon entry is not present then
* check if the camerrx_control resource is present.
*/
res = platform_get_resource_byname(cal->pdev, IORESOURCE_MEM,
"camerrx_control"); "camerrx_control");
base = devm_ioremap_resource(&pdev->dev, res); base = devm_ioremap_resource(&cal->pdev->dev, res);
if (IS_ERR(base)) { if (IS_ERR(base)) {
cal_err(cal, "failed to ioremap\n"); cal_err(cal, "failed to ioremap camerrx_control\n");
return ERR_CAST(base); return PTR_ERR(base);
} }
cal_dbg(1, cal, "ioresource %s at %pa - %pa\n", cal_dbg(1, cal, "ioresource %s at %pa - %pa\n",
...@@ -984,45 +1000,18 @@ static struct regmap *cal_get_camerarx_regmap(struct cal_dev *cal) ...@@ -984,45 +1000,18 @@ static struct regmap *cal_get_camerarx_regmap(struct cal_dev *cal)
config.val_bits = 32; config.val_bits = 32;
config.max_register = resource_size(res) - 4; config.max_register = resource_size(res) - 4;
regmap = regmap_init_mmio(NULL, base, &config); syscon = regmap_init_mmio(NULL, base, &config);
if (IS_ERR(regmap))
pr_err("regmap init failed\n");
return regmap;
}
static int cal_camerarx_init_regmap(struct cal_dev *cal)
{
struct device_node *np = cal->pdev->dev.of_node;
struct regmap *syscon;
unsigned int offset;
syscon = syscon_regmap_lookup_by_phandle_args(np, "ti,camerrx-control",
1, &offset);
if (IS_ERR(syscon)) { if (IS_ERR(syscon)) {
dev_warn(&cal->pdev->dev, pr_err("regmap init failed\n");
"failed to get ti,camerrx-control: %ld\n",
PTR_ERR(syscon));
/*
* Backward DTS compatibility.
* If syscon entry is not present then check if the
* camerrx_control resource is present.
*/
syscon = cal_get_camerarx_regmap(cal);
if (IS_ERR(syscon)) {
dev_err(&cal->pdev->dev,
"failed to get camerrx_control regmap\n");
return PTR_ERR(syscon); return PTR_ERR(syscon);
} }
/* In this case the base already point to the direct
* CM register so no need for an offset
*/
offset = 0;
}
/*
* In this case the base already point to the direct CM register so no
* need for an offset.
*/
cal->syscon_camerrx = syscon; cal->syscon_camerrx = syscon;
cal->syscon_camerrx_offset = offset; cal->syscon_camerrx_offset = 0;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment