diff --git a/drivers/soc/rockchip/flash_vendor_storage.c b/drivers/soc/rockchip/flash_vendor_storage.c index 711fa7eec168..72961108ee5a 100644 --- a/drivers/soc/rockchip/flash_vendor_storage.c +++ b/drivers/soc/rockchip/flash_vendor_storage.c @@ -360,3 +360,4 @@ static __exit void vendor_storage_deinit(void) device_initcall_sync(vendor_storage_init); module_exit(vendor_storage_deinit); +MODULE_LICENSE("GPL"); diff --git a/drivers/soc/rockchip/mtd_vendor_storage.c b/drivers/soc/rockchip/mtd_vendor_storage.c index c2f8f402de77..1d41190e9926 100644 --- a/drivers/soc/rockchip/mtd_vendor_storage.c +++ b/drivers/soc/rockchip/mtd_vendor_storage.c @@ -75,6 +75,7 @@ static DEFINE_MUTEX(vendor_ops_mutex); static struct mtd_info *mtd; static const char *vendor_mtd_name = "vnvm"; static struct mtd_nand_info nand_info; +static struct platform_device *g_pdev; static int mtd_vendor_nand_write(void) { @@ -437,6 +438,8 @@ static int __init vendor_storage_init(void) g_idb_buffer = NULL; ret = platform_driver_register(&vendor_storage_driver); + if (ret) + return ret; pdev = platform_device_register_simple("mtd_vendor_storage", -1, NULL, 0); @@ -444,8 +447,17 @@ static int __init vendor_storage_init(void) platform_driver_unregister(&vendor_storage_driver); return PTR_ERR(pdev); } + g_pdev = pdev; return ret; } +static __exit void vendor_storage_deinit(void) +{ + platform_device_unregister(g_pdev); + platform_driver_unregister(&vendor_storage_driver); +} + module_init(vendor_storage_init); +module_exit(vendor_storage_deinit); +MODULE_LICENSE("GPL"); diff --git a/drivers/soc/rockchip/rk_vendor_storage.c b/drivers/soc/rockchip/rk_vendor_storage.c index 0d1dc5241a40..5c49667e7e5c 100644 --- a/drivers/soc/rockchip/rk_vendor_storage.c +++ b/drivers/soc/rockchip/rk_vendor_storage.c @@ -8,6 +8,7 @@ */ #include +#include #include int (*_vendor_read)(u32 id, void *pbuf, u32 size) = NULL; @@ -47,3 +48,5 @@ bool is_rk_vendor_ready(void) return false; } EXPORT_SYMBOL(is_rk_vendor_ready); + +MODULE_LICENSE("GPL"); diff --git a/include/linux/soc/rockchip/rk_vendor_storage.h b/include/linux/soc/rockchip/rk_vendor_storage.h index c36817c156e5..33033a4cfe9f 100644 --- a/include/linux/soc/rockchip/rk_vendor_storage.h +++ b/include/linux/soc/rockchip/rk_vendor_storage.h @@ -28,9 +28,31 @@ #define LAN_RGMII_DL_ID 16 #define EINK_VCOM_ID 17 +#if IS_ENABLED(CONFIG_ROCKCHIP_VENDOR_STORAGE) int rk_vendor_read(u32 id, void *pbuf, u32 size); int rk_vendor_write(u32 id, void *pbuf, u32 size); int rk_vendor_register(void *read, void *write); bool is_rk_vendor_ready(void); +#else +static inline int rk_vendor_read(u32 id, void *pbuf, u32 size) +{ + return -1; +} + +static inline int rk_vendor_write(u32 id, void *pbuf, u32 size) +{ + return -1; +} + +static inline int rk_vendor_register(void *read, void *write) +{ + return -1; +} + +static inline bool is_rk_vendor_ready(void) +{ + return false; +} +#endif #endif