Skip to content

Commit ccfba09

Browse files
jbrun3tpH5
authored andcommitted
reset: amlogic: aux: get regmap through parent device
Get regmap directly from the parent device registering the auxiliary reset driver, instead of using device data attached to the auxiliary device. This simplifies the registration a bit. Suggested-by: Stephen Boyd <[email protected]> Signed-off-by: Jerome Brunet <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Philipp Zabel <[email protected]>
1 parent 64de6a3 commit ccfba09

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

drivers/reset/amlogic/reset-meson-aux.c

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,6 @@
1818

1919
static DEFINE_IDA(meson_rst_aux_ida);
2020

21-
struct meson_reset_adev {
22-
struct auxiliary_device adev;
23-
struct regmap *map;
24-
};
25-
26-
#define to_meson_reset_adev(_adev) \
27-
container_of((_adev), struct meson_reset_adev, adev)
28-
2921
static const struct meson_reset_param meson_a1_audio_param = {
3022
.reset_ops = &meson_reset_toggle_ops,
3123
.reset_num = 32,
@@ -72,10 +64,13 @@ static int meson_reset_aux_probe(struct auxiliary_device *adev,
7264
{
7365
const struct meson_reset_param *param =
7466
(const struct meson_reset_param *)(id->driver_data);
75-
struct meson_reset_adev *raux =
76-
to_meson_reset_adev(adev);
67+
struct regmap *map;
68+
69+
map = dev_get_regmap(adev->dev.parent, NULL);
70+
if (!map)
71+
return -EINVAL;
7772

78-
return meson_reset_controller_register(&adev->dev, raux->map, param);
73+
return meson_reset_controller_register(&adev->dev, map, param);
7974
}
8075

8176
static struct auxiliary_driver meson_reset_aux_driver = {
@@ -87,11 +82,9 @@ module_auxiliary_driver(meson_reset_aux_driver);
8782
static void meson_rst_aux_release(struct device *dev)
8883
{
8984
struct auxiliary_device *adev = to_auxiliary_dev(dev);
90-
struct meson_reset_adev *raux =
91-
to_meson_reset_adev(adev);
9285

9386
ida_free(&meson_rst_aux_ida, adev->id);
94-
kfree(raux);
87+
kfree(adev);
9588
}
9689

9790
static void meson_rst_aux_unregister_adev(void *_adev)
@@ -103,24 +96,19 @@ static void meson_rst_aux_unregister_adev(void *_adev)
10396
}
10497

10598
int devm_meson_rst_aux_register(struct device *dev,
106-
struct regmap *map,
10799
const char *adev_name)
108100
{
109-
struct meson_reset_adev *raux;
110101
struct auxiliary_device *adev;
111102
int ret;
112103

113-
raux = kzalloc(sizeof(*raux), GFP_KERNEL);
114-
if (!raux)
104+
adev = kzalloc(sizeof(*adev), GFP_KERNEL);
105+
if (!adev)
115106
return -ENOMEM;
116107

117108
ret = ida_alloc(&meson_rst_aux_ida, GFP_KERNEL);
118109
if (ret < 0)
119-
goto raux_free;
120-
121-
raux->map = map;
110+
goto adev_free;
122111

123-
adev = &raux->adev;
124112
adev->id = ret;
125113
adev->name = adev_name;
126114
adev->dev.parent = dev;
@@ -142,8 +130,8 @@ int devm_meson_rst_aux_register(struct device *dev,
142130

143131
ida_free:
144132
ida_free(&meson_rst_aux_ida, adev->id);
145-
raux_free:
146-
kfree(raux);
133+
adev_free:
134+
kfree(adev);
147135
return ret;
148136
}
149137
EXPORT_SYMBOL_GPL(devm_meson_rst_aux_register);

0 commit comments

Comments
 (0)