Loading drivers/soc/qcom/bg_rsb.c +17 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,8 @@ #define BGRSB_POWER_DISABLE 0 #define BGRSB_GLINK_POWER_ENABLE 6 #define BGRSB_GLINK_POWER_DISABLE 7 #define BGRSB_IN_TWM 8 #define BGRSB_OUT_TWM 9 struct bgrsb_regulator { Loading Loading @@ -137,10 +139,12 @@ struct bgrsb_priv { bool is_calibrd; bool is_cnfgrd; bool blk_rsb_cmnds; }; static void *bgrsb_drv; static int bgrsb_enable(struct bgrsb_priv *dev, bool enable); static bool is_in_twm; int bgrsb_send_input(struct event *evnt) { Loading Loading @@ -418,6 +422,7 @@ static void bgrsb_bgdown_work(struct work_struct *work) } dev->is_cnfgrd = false; dev->blk_rsb_cmnds = false; pr_info("RSB current state is : %d\n", dev->bgrsb_current_state); if (dev->bgrsb_current_state == BGRSB_STATE_INIT) { Loading Loading @@ -457,6 +462,8 @@ static void bgrsb_glink_bgdown_work(struct work_struct *work) } dev->is_cnfgrd = false; if (is_in_twm) dev->blk_rsb_cmnds = true; if (dev->handle) glink_close(dev->handle); Loading Loading @@ -832,9 +839,13 @@ static int split_bg_work(struct bgrsb_priv *dev, char *str) dev->bttn_configs = (uint8_t)val; queue_work(dev->bgrsb_wq, &dev->bttn_configr_work); break; case BGRSB_IN_TWM: is_in_twm = true; case BGRSB_GLINK_POWER_DISABLE: queue_work(dev->bgrsb_wq, &dev->rsb_glink_down_work); break; case BGRSB_OUT_TWM: is_in_twm = false; case BGRSB_GLINK_POWER_ENABLE: queue_work(dev->bgrsb_wq, &dev->rsb_glink_up_work); break; Loading @@ -851,6 +862,12 @@ static int store_enable(struct device *pdev, struct device_attribute *attr, if (!arr) return -ENOMEM; if (dev->blk_rsb_cmnds) { pr_err("Device is in TWM state\n"); kfree(arr); return count; } if (!dev->is_cnfgrd) { kfree(arr); return -ENOMEDIUM; Loading Loading
drivers/soc/qcom/bg_rsb.c +17 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,8 @@ #define BGRSB_POWER_DISABLE 0 #define BGRSB_GLINK_POWER_ENABLE 6 #define BGRSB_GLINK_POWER_DISABLE 7 #define BGRSB_IN_TWM 8 #define BGRSB_OUT_TWM 9 struct bgrsb_regulator { Loading Loading @@ -137,10 +139,12 @@ struct bgrsb_priv { bool is_calibrd; bool is_cnfgrd; bool blk_rsb_cmnds; }; static void *bgrsb_drv; static int bgrsb_enable(struct bgrsb_priv *dev, bool enable); static bool is_in_twm; int bgrsb_send_input(struct event *evnt) { Loading Loading @@ -418,6 +422,7 @@ static void bgrsb_bgdown_work(struct work_struct *work) } dev->is_cnfgrd = false; dev->blk_rsb_cmnds = false; pr_info("RSB current state is : %d\n", dev->bgrsb_current_state); if (dev->bgrsb_current_state == BGRSB_STATE_INIT) { Loading Loading @@ -457,6 +462,8 @@ static void bgrsb_glink_bgdown_work(struct work_struct *work) } dev->is_cnfgrd = false; if (is_in_twm) dev->blk_rsb_cmnds = true; if (dev->handle) glink_close(dev->handle); Loading Loading @@ -832,9 +839,13 @@ static int split_bg_work(struct bgrsb_priv *dev, char *str) dev->bttn_configs = (uint8_t)val; queue_work(dev->bgrsb_wq, &dev->bttn_configr_work); break; case BGRSB_IN_TWM: is_in_twm = true; case BGRSB_GLINK_POWER_DISABLE: queue_work(dev->bgrsb_wq, &dev->rsb_glink_down_work); break; case BGRSB_OUT_TWM: is_in_twm = false; case BGRSB_GLINK_POWER_ENABLE: queue_work(dev->bgrsb_wq, &dev->rsb_glink_up_work); break; Loading @@ -851,6 +862,12 @@ static int store_enable(struct device *pdev, struct device_attribute *attr, if (!arr) return -ENOMEM; if (dev->blk_rsb_cmnds) { pr_err("Device is in TWM state\n"); kfree(arr); return count; } if (!dev->is_cnfgrd) { kfree(arr); return -ENOMEDIUM; Loading