/** * omap_hsi_io_wakeup_check - Check if IO wakeup is from HSI and schedule HSI * processing tasklet * * Return value : * 0 if HSI tasklet scheduled. * * negative value else. */ int omap_hsi_io_wakeup_check(void) { int hsi_port, ret = -1; /* Modem HSI wakeup */ if (omap_hsi_is_io_wakeup_from_hsi(&hsi_port)) ret = omap_hsi_wakeup(hsi_port); return ret; }
static void ifx_gpio_hsi_wakeup(struct hsi_dev *hsi_ctrl) { int i; dev_info(hsi_ctrl->dev, "%s: start \n", __func__); for (i = 0; i < hsi_ctrl->max_p; i++) { dev_info(hsi_ctrl->dev, "%s: cawake_status %d for port_number %d \n", __func__, hsi_ctrl->hsi_port[i].cawake_status, hsi_ctrl->hsi_port[i].port_number); #if 1 omap_hsi_wakeup(hsi_ctrl->hsi_port[i].port_number); #else if(hsi_ctrl->hsi_port[i].cawake_status == 0) { omap_hsi_wakeup(hsi_ctrl->hsi_port[i].port_number); dev_info(hsi_ctrl->dev, "%s: enter omap_hsi_wakeup \n", __func__); } #endif } dev_info(hsi_ctrl->dev, "%s: end \n", __func__); }