Use direct function call instead of eemi ops for init_finalize.
Unified · Split
| @@ -710,10 +710,11 @@ static int zynqmp_pm_fpga_get_status(u32 *value) · 709 unmodified lines | ||
| 710 | 710 | * |
| 711 | 711 | * Return: Returns status, either success or error+reason |
| 712 | 712 | */ |
| 713 | −static int zynqmp_pm_init_finalize(void) | |
| 713 | +int zynqmp_pm_init_finalize(void) | |
| 714 | 714 | { |
| 715 | 715 | return zynqmp_pm_invoke_fn(PM_PM_INIT_FINALIZE, 0, 0, 0, 0, NULL); |
| 716 | 716 | } |
| 717 | +EXPORT_SYMBOL_GPL(zynqmp_pm_init_finalize); | |
| 717 | 718 | |
| 718 | 719 | /** |
| 719 | 720 | * zynqmp_pm_set_suspend_mode() - Set system suspend mode |
| @@ -808,7 +809,6 @@ static int zynqmp_pm_aes_engine(const u64 address, u32 *out) · 88 unmodified lines | ||
| 808 | 809 | } |
| 809 | 810 | |
| 810 | 811 | static const struct zynqmp_eemi_ops eemi_ops = { |
| 811 | − .init_finalize = zynqmp_pm_init_finalize, | |
| 812 | 812 | .set_suspend_mode = zynqmp_pm_set_suspend_mode, |
| 813 | 813 | .request_node = zynqmp_pm_request_node, |
| 814 | 814 | .release_node = zynqmp_pm_release_node, |
| @@ -182,14 +182,7 @@ static int zynqmp_pm_probe(struct platform_device *pdev) · 181 unmodified lines | ||
| 182 | 182 | u32 pm_api_version; |
| 183 | 183 | struct mbox_client *client; |
| 184 | 184 | |
| 185 | − eemi_ops = zynqmp_pm_get_eemi_ops(); | |
| 186 | − if (IS_ERR(eemi_ops)) | |
| 187 | − return PTR_ERR(eemi_ops); | |
| 188 | − | |
| 189 | − if (!eemi_ops->init_finalize) | |
| 190 | − return -ENXIO; | |
| 191 | − | |
| 192 | − eemi_ops->init_finalize(); | |
| 185 | + zynqmp_pm_init_finalize(); | |
| 193 | 186 | zynqmp_pm_get_api_version(&pm_api_version); |
| 194 | 187 | |
| 195 | 188 | /* Check PM API version number */ |
| @@ -296,7 +296,6 @@ struct zynqmp_pm_query_data { · 295 unmodified lines | ||
| 296 | 296 | struct zynqmp_eemi_ops { |
| 297 | 297 | int (*fpga_load)(const u64 address, const u32 size, const u32 flags); |
| 298 | 298 | int (*fpga_get_status)(u32 *value); |
| 299 | − int (*init_finalize)(void); | |
| 300 | 299 | int (*set_suspend_mode)(u32 mode); |
| 301 | 300 | int (*request_node)(const u32 node, |
| 302 | 301 | const u32 capabilities, |
| @@ -336,6 +335,7 @@ int zynqmp_pm_sd_dll_reset(u32 node_id, u32 type); · 33 unmodified lines | ||
| 336 | 335 | int zynqmp_pm_reset_assert(const enum zynqmp_pm_reset reset, |
| 337 | 336 | const enum zynqmp_pm_reset_action assert_flag); |
| 338 | 337 | int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset, u32 *status); |
| 338 | +int zynqmp_pm_init_finalize(void); | |
| 339 | 339 | #else |
| 340 | 340 | static inline struct zynqmp_eemi_ops *zynqmp_pm_get_eemi_ops(void) |
| 341 | 341 | { |
| @@ -424,6 +424,10 @@ static inline int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset, · 82 unmodified lines | ||
| 424 | 424 | { |
| 425 | 425 | return -ENODEV; |
| 426 | 426 | } |
| 427 | +static inline int zynqmp_pm_init_finalize(void) | |
| 428 | +{ | |
| 429 | + return -ENODEV; | |
| 430 | +} | |
| 427 | 431 | #endif |
| 428 | 432 | |
| 429 | 433 | #endif /* __FIRMWARE_ZYNQMP_H__ */ |