123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #include "sec_charging_modprobe.h"
- #define MODPROB_TIMEOUT 20000
- #if IS_MODULE(CONFIG_BATTERY_SAMSUNG)
- static struct dev_init_info gdev_init;
- void sec_chg_init_gdev(void)
- {
- gdev_init.dev = 0;
- init_waitqueue_head(&gdev_init.dev_wait);
- }
- int sec_chg_set_dev_init(unsigned int dev)
- {
- gdev_init.dev |= dev;
- wake_up(&gdev_init.dev_wait);
- return 0;
- }
- EXPORT_SYMBOL(sec_chg_set_dev_init);
- void sec_chg_check_modprobe(void)
- {
- unsigned int check_dev = 0;
- check_dev |= SC_DEV_FG | SC_DEV_MAIN_CHG;
- #if IS_ENABLED(CONFIG_DUAL_BATTERY)
- check_dev |= SC_DEV_MAIN_LIM | SC_DEV_SUB_LIM;
- #endif
- #if IS_ENABLED(CONFIG_DIRECT_CHARGING)
- check_dev |= SC_DEV_DIR_CHG | SC_DEV_SEC_DIR_CHG;
- #endif
- #if IS_ENABLED(CONFIG_WIRELESS_CHARGING)
- check_dev |= SC_DEV_WRL_CHG;
- #if IS_ENABLED(CONFIG_SB_MFC)
- check_dev |= SC_DEV_SB_MFC;
- #endif
- #endif
- if (!wait_event_timeout(gdev_init.dev_wait,
- gdev_init.dev == check_dev, msecs_to_jiffies(MODPROB_TIMEOUT)))
- pr_info("%s: dev_init timeout(0x%x)\n", __func__, gdev_init.dev);
- else
- pr_info("%s: takes time to wait(0x%x)\n", __func__, gdev_init.dev);
- }
- EXPORT_SYMBOL(sec_chg_check_modprobe);
- void sec_chg_check_dev_modprobe(unsigned int dev)
- {
- if (!wait_event_timeout(gdev_init.dev_wait,
- gdev_init.dev & dev, msecs_to_jiffies(MODPROB_TIMEOUT)))
- pr_info("%s: dev_init timeout(0x%x)\n", __func__, dev);
- else
- pr_info("%s: takes time to wait(0x%x)\n", __func__, dev);
- }
- EXPORT_SYMBOL(sec_chg_check_dev_modprobe);
- #else
- void sec_chg_init_gdev(void) { }
- int sec_chg_set_dev_init(unsigned int dev) { return 0; }
- void sec_chg_check_modprobe(void) { }
- void sec_chg_check_dev_modprobe(unsigned int dev) { }
- #endif
|