|
11 | 11 | #include <linux/auxiliary_bus.h>
|
12 | 12 | #include <linux/regmap.h>
|
13 | 13 | #include <linux/reset-controller.h>
|
14 |
| -#include <linux/slab.h> |
15 | 14 |
|
16 | 15 | #include "reset-meson.h"
|
17 |
| -#include <soc/amlogic/reset-meson-aux.h> |
18 |
| - |
19 |
| -static DEFINE_IDA(meson_rst_aux_ida); |
20 | 16 |
|
21 | 17 | static const struct meson_reset_param meson_a1_audio_param = {
|
22 | 18 | .reset_ops = &meson_reset_toggle_ops,
|
@@ -79,63 +75,6 @@ static struct auxiliary_driver meson_reset_aux_driver = {
|
79 | 75 | };
|
80 | 76 | module_auxiliary_driver(meson_reset_aux_driver);
|
81 | 77 |
|
82 |
| -static void meson_rst_aux_release(struct device *dev) |
83 |
| -{ |
84 |
| - struct auxiliary_device *adev = to_auxiliary_dev(dev); |
85 |
| - |
86 |
| - ida_free(&meson_rst_aux_ida, adev->id); |
87 |
| - kfree(adev); |
88 |
| -} |
89 |
| - |
90 |
| -static void meson_rst_aux_unregister_adev(void *_adev) |
91 |
| -{ |
92 |
| - struct auxiliary_device *adev = _adev; |
93 |
| - |
94 |
| - auxiliary_device_delete(adev); |
95 |
| - auxiliary_device_uninit(adev); |
96 |
| -} |
97 |
| - |
98 |
| -int devm_meson_rst_aux_register(struct device *dev, |
99 |
| - const char *adev_name) |
100 |
| -{ |
101 |
| - struct auxiliary_device *adev; |
102 |
| - int ret; |
103 |
| - |
104 |
| - adev = kzalloc(sizeof(*adev), GFP_KERNEL); |
105 |
| - if (!adev) |
106 |
| - return -ENOMEM; |
107 |
| - |
108 |
| - ret = ida_alloc(&meson_rst_aux_ida, GFP_KERNEL); |
109 |
| - if (ret < 0) |
110 |
| - goto adev_free; |
111 |
| - |
112 |
| - adev->id = ret; |
113 |
| - adev->name = adev_name; |
114 |
| - adev->dev.parent = dev; |
115 |
| - adev->dev.release = meson_rst_aux_release; |
116 |
| - device_set_of_node_from_dev(&adev->dev, dev); |
117 |
| - |
118 |
| - ret = auxiliary_device_init(adev); |
119 |
| - if (ret) |
120 |
| - goto ida_free; |
121 |
| - |
122 |
| - ret = __auxiliary_device_add(adev, dev->driver->name); |
123 |
| - if (ret) { |
124 |
| - auxiliary_device_uninit(adev); |
125 |
| - return ret; |
126 |
| - } |
127 |
| - |
128 |
| - return devm_add_action_or_reset(dev, meson_rst_aux_unregister_adev, |
129 |
| - adev); |
130 |
| - |
131 |
| -ida_free: |
132 |
| - ida_free(&meson_rst_aux_ida, adev->id); |
133 |
| -adev_free: |
134 |
| - kfree(adev); |
135 |
| - return ret; |
136 |
| -} |
137 |
| -EXPORT_SYMBOL_GPL(devm_meson_rst_aux_register); |
138 |
| - |
139 | 78 | MODULE_DESCRIPTION("Amlogic Meson Reset Auxiliary driver");
|
140 | 79 | MODULE_AUTHOR( "Jerome Brunet <[email protected]>");
|
141 | 80 | MODULE_LICENSE("Dual BSD/GPL");
|
|
0 commit comments