Commit 5150a8f0 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Uwe Kleine-König

amba: reorder functions

Put helpers (here: amba_get_enable_pclk and amba_put_disable_pclk) at
the top of the file and then define callbacks directly before the
structs they are used in; in the same order.
Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210126165835.687514-3-u.kleine-koenig@pengutronix.deSigned-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent de5d7adb
...@@ -56,31 +56,28 @@ amba_lookup(const struct amba_id *table, struct amba_device *dev) ...@@ -56,31 +56,28 @@ amba_lookup(const struct amba_id *table, struct amba_device *dev)
return NULL; return NULL;
} }
static int amba_match(struct device *dev, struct device_driver *drv) static int amba_get_enable_pclk(struct amba_device *pcdev)
{ {
struct amba_device *pcdev = to_amba_device(dev); int ret;
struct amba_driver *pcdrv = to_amba_driver(drv);
/* When driver_override is set, only bind to the matching driver */ pcdev->pclk = clk_get(&pcdev->dev, "apb_pclk");
if (pcdev->driver_override) if (IS_ERR(pcdev->pclk))
return !strcmp(pcdev->driver_override, drv->name); return PTR_ERR(pcdev->pclk);
return amba_lookup(pcdrv->id_table, pcdev) != NULL; ret = clk_prepare_enable(pcdev->pclk);
if (ret)
clk_put(pcdev->pclk);
return ret;
} }
static int amba_uevent(struct device *dev, struct kobj_uevent_env *env) static void amba_put_disable_pclk(struct amba_device *pcdev)
{ {
struct amba_device *pcdev = to_amba_device(dev); clk_disable_unprepare(pcdev->pclk);
int retval = 0; clk_put(pcdev->pclk);
retval = add_uevent_var(env, "AMBA_ID=%08x", pcdev->periphid);
if (retval)
return retval;
retval = add_uevent_var(env, "MODALIAS=amba:d%08X", pcdev->periphid);
return retval;
} }
static ssize_t driver_override_show(struct device *_dev, static ssize_t driver_override_show(struct device *_dev,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
...@@ -152,6 +149,31 @@ static struct attribute *amba_dev_attrs[] = { ...@@ -152,6 +149,31 @@ static struct attribute *amba_dev_attrs[] = {
}; };
ATTRIBUTE_GROUPS(amba_dev); ATTRIBUTE_GROUPS(amba_dev);
static int amba_match(struct device *dev, struct device_driver *drv)
{
struct amba_device *pcdev = to_amba_device(dev);
struct amba_driver *pcdrv = to_amba_driver(drv);
/* When driver_override is set, only bind to the matching driver */
if (pcdev->driver_override)
return !strcmp(pcdev->driver_override, drv->name);
return amba_lookup(pcdrv->id_table, pcdev) != NULL;
}
static int amba_uevent(struct device *dev, struct kobj_uevent_env *env)
{
struct amba_device *pcdev = to_amba_device(dev);
int retval = 0;
retval = add_uevent_var(env, "AMBA_ID=%08x", pcdev->periphid);
if (retval)
return retval;
retval = add_uevent_var(env, "MODALIAS=amba:d%08X", pcdev->periphid);
return retval;
}
#ifdef CONFIG_PM #ifdef CONFIG_PM
/* /*
* Hooks to provide runtime PM of the pclk (bus clock). It is safe to * Hooks to provide runtime PM of the pclk (bus clock). It is safe to
...@@ -229,27 +251,6 @@ static int __init amba_init(void) ...@@ -229,27 +251,6 @@ static int __init amba_init(void)
postcore_initcall(amba_init); postcore_initcall(amba_init);
static int amba_get_enable_pclk(struct amba_device *pcdev)
{
int ret;
pcdev->pclk = clk_get(&pcdev->dev, "apb_pclk");
if (IS_ERR(pcdev->pclk))
return PTR_ERR(pcdev->pclk);
ret = clk_prepare_enable(pcdev->pclk);
if (ret)
clk_put(pcdev->pclk);
return ret;
}
static void amba_put_disable_pclk(struct amba_device *pcdev)
{
clk_disable_unprepare(pcdev->pclk);
clk_put(pcdev->pclk);
}
/* /*
* These are the device model conversion veneers; they convert the * These are the device model conversion veneers; they convert the
* device model structures to our more specific structures. * device model structures to our more specific structures.
......
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