forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/usb/chipidea/ci_hdrc_msm.c
....@@ -114,7 +114,7 @@
114114 hw_write_id_reg(ci, HS_PHY_GENCONFIG_2,
115115 HS_PHY_ULPI_TX_PKT_EN_CLR_FIX, 0);
116116
117
- if (!IS_ERR(ci->platdata->vbus_extcon.edev)) {
117
+ if (!IS_ERR(ci->platdata->vbus_extcon.edev) || ci->role_switch) {
118118 hw_write_id_reg(ci, HS_PHY_GENCONFIG_2,
119119 HS_PHY_SESS_VLD_CTRL_EN,
120120 HS_PHY_SESS_VLD_CTRL_EN);
....@@ -175,7 +175,6 @@
175175 struct platform_device *plat_ci;
176176 struct clk *clk;
177177 struct reset_control *reset;
178
- struct resource *res;
179178 int ret;
180179 struct device_node *ulpi_node, *phy_node;
181180
....@@ -205,15 +204,11 @@
205204 if (IS_ERR(clk))
206205 return PTR_ERR(clk);
207206
208
- ci->fs_clk = clk = devm_clk_get(&pdev->dev, "fs");
209
- if (IS_ERR(clk)) {
210
- if (PTR_ERR(clk) == -EPROBE_DEFER)
211
- return -EPROBE_DEFER;
212
- ci->fs_clk = NULL;
213
- }
207
+ ci->fs_clk = clk = devm_clk_get_optional(&pdev->dev, "fs");
208
+ if (IS_ERR(clk))
209
+ return PTR_ERR(clk);
214210
215
- res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
216
- ci->base = devm_ioremap_resource(&pdev->dev, res);
211
+ ci->base = devm_platform_ioremap_resource(pdev, 1);
217212 if (IS_ERR(ci->base))
218213 return PTR_ERR(ci->base);
219214
....@@ -221,13 +216,13 @@
221216 ci->rcdev.ops = &ci_hdrc_msm_reset_ops;
222217 ci->rcdev.of_node = pdev->dev.of_node;
223218 ci->rcdev.nr_resets = 2;
224
- ret = reset_controller_register(&ci->rcdev);
219
+ ret = devm_reset_controller_register(&pdev->dev, &ci->rcdev);
225220 if (ret)
226221 return ret;
227222
228223 ret = clk_prepare_enable(ci->fs_clk);
229224 if (ret)
230
- goto err_fs;
225
+ return ret;
231226
232227 reset_control_assert(reset);
233228 usleep_range(10000, 12000);
....@@ -237,7 +232,7 @@
237232
238233 ret = clk_prepare_enable(ci->core_clk);
239234 if (ret)
240
- goto err_fs;
235
+ return ret;
241236
242237 ret = clk_prepare_enable(ci->iface_clk);
243238 if (ret)
....@@ -276,8 +271,6 @@
276271 clk_disable_unprepare(ci->iface_clk);
277272 err_iface:
278273 clk_disable_unprepare(ci->core_clk);
279
-err_fs:
280
- reset_controller_unregister(&ci->rcdev);
281274 return ret;
282275 }
283276
....@@ -289,7 +282,6 @@
289282 ci_hdrc_remove_device(ci->ci);
290283 clk_disable_unprepare(ci->iface_clk);
291284 clk_disable_unprepare(ci->core_clk);
292
- reset_controller_unregister(&ci->rcdev);
293285
294286 return 0;
295287 }