aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mdm_hsic_pm.h
blob: ce035dc7e5239e6aa53fbb33d5abb8d04d024e04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef __MDM_HSIC_PM_H__
#define __MDM_HSIC_PM_H__
#include <linux/usb.h>

enum pwr_stat {
	POWER_OFF,
	POWER_ON,
};

void request_active_lock_set(const char *name);
void request_active_lock_release(const char *name);
void request_boot_lock_set(const char *name);
void request_boot_lock_release(const char *name);
void set_host_stat(const char *name, enum pwr_stat status);
int wait_dev_pwr_stat(const char *name, enum pwr_stat status);
int check_udev_suspend_allowed(const char *name);
bool check_request_blocked(const char *name);
int pm_dev_runtime_get_enabled(struct usb_device *udev);
int pm_dev_wait_lpa_wake(void);

/*add wakelock interface for fast dormancy*/
#ifdef CONFIG_HAS_WAKELOCK
void fast_dormancy_wakelock(const char *name);
#else
void fast_dormancy_wakelock(const char *name) {}
#endif

/**
 * register_udev_to_pm_dev - called at interface driver probe function
 *
 * @name:		name of pm device to register usb device
 * @udev:		pointer of udev to register
 */
int register_udev_to_pm_dev(const char *name, struct usb_device *udev);

/**
 * unregister_udev_from_pm_dev - called at interface driver disconnect function
 *
 * @name:		name of pm device to unregister usb device
 * @udev:		pointer of udev to unregister
 */
void unregister_udev_from_pm_dev(const char *name, struct usb_device *udev);

int set_qmicm_mode(const char *name);

extern struct blocking_notifier_head mdm_reset_notifier_list;
extern void mdm_force_fatal(void);
extern void print_mdm_gpio_state(void);
extern bool lpa_handling;
extern int hello_packet_rx;
#endif /* __MDM_HSIC_PM_H__ */