diff options
author | Daniel <790119+DanTheMan827@users.noreply.github.com> | 2018-02-09 23:58:56 +0300 |
---|---|---|
committer | Daniel <790119+DanTheMan827@users.noreply.github.com> | 2018-02-10 00:42:59 +0300 |
commit | 3050d7e149b6c535cdb554daa9ec501198fbf212 (patch) | |
tree | 160c3b6dd16c17dac1ff99c8a2cb527b55589b05 | |
parent | 8075323455ab581a2ec4ceeca1118efae222792b (diff) |
Add ifdef checks to enable or disable the sunxi_usb hacks
-rw-r--r-- | arch/arm/configs/sun_nontendocm_defconfig | 1 | ||||
-rw-r--r-- | drivers/usb/sunxi_usb/Kconfig | 3 | ||||
-rw-r--r-- | drivers/usb/sunxi_usb/hcd/hcd0/sunxi_hcd0.c | 2 | ||||
-rw-r--r-- | drivers/usb/sunxi_usb/manager/usb_manager.c | 13 | ||||
-rw-r--r-- | drivers/usb/sunxi_usb/manager/usb_msg_center.c | 2 | ||||
-rw-r--r-- | drivers/usb/sunxi_usb/manager/usb_msg_center.h | 2 |
6 files changed, 21 insertions, 2 deletions
diff --git a/arch/arm/configs/sun_nontendocm_defconfig b/arch/arm/configs/sun_nontendocm_defconfig index ecdf8ca3..38939677 100644 --- a/arch/arm/configs/sun_nontendocm_defconfig +++ b/arch/arm/configs/sun_nontendocm_defconfig @@ -225,6 +225,7 @@ CONFIG_USB_SUNXI_HCD0=y CONFIG_USB_SUNXI_HCI=y CONFIG_USB_SUNXI_EHCI0=y CONFIG_USB_SUNXI_OHCI0=y +CONFIG_USB_SUNXI_HACK=y CONFIG_SW_USB_3G=y CONFIG_USB_3G_SLEEP_BY_USB_WAKEUP_BY_USB=y CONFIG_USB_ACM=y diff --git a/drivers/usb/sunxi_usb/Kconfig b/drivers/usb/sunxi_usb/Kconfig index 0b9cb501..c47b6a49 100644 --- a/drivers/usb/sunxi_usb/Kconfig +++ b/drivers/usb/sunxi_usb/Kconfig @@ -68,3 +68,6 @@ config USB_SUNXI_HOST help SUNXI USB driver debug message. +config USB_SUNXI_HACK + depends on (USB_SUNXI_USB && USB_SUNXI_USB_MANAGER) + boolean "enable hakchi hacks" diff --git a/drivers/usb/sunxi_usb/hcd/hcd0/sunxi_hcd0.c b/drivers/usb/sunxi_usb/hcd/hcd0/sunxi_hcd0.c index 98b258f9..08e217df 100644 --- a/drivers/usb/sunxi_usb/hcd/hcd0/sunxi_hcd0.c +++ b/drivers/usb/sunxi_usb/hcd/hcd0/sunxi_hcd0.c @@ -380,7 +380,7 @@ static s32 close_usb_clock(sunxi_hcd_io_t *sunxi_hcd_io) static __s32 pin_init(sunxi_hcd_io_t *sunxi_hcd_io) { -#if 0//ndef SUNXI_USB_FPGA +#if !defined(CONFIG_USB_SUNXI_HACK) && !defined(SUNXI_USB_FPGA) __s32 ret = 0; script_item_value_type_e type = 0; script_item_u item_temp; diff --git a/drivers/usb/sunxi_usb/manager/usb_manager.c b/drivers/usb/sunxi_usb/manager/usb_manager.c index a44b485d..f0736473 100644 --- a/drivers/usb/sunxi_usb/manager/usb_manager.c +++ b/drivers/usb/sunxi_usb/manager/usb_manager.c @@ -40,9 +40,11 @@ #include <mach/platform.h> #include <linux/gpio.h> +#ifdef CONFIG_USB_SUNXI_HACK #include <linux/device.h> #include <linux/sysfs.h> #include <linux/kobject.h> +#endif #include "../include/sunxi_usb_config.h" #include "usb_manager.h" @@ -50,9 +52,11 @@ #include "usb_hw_scan.h" #include "usb_msg_center.h" +#ifdef CONFIG_USB_SUNXI_HACK static struct device *dev_attr_sunxi_usb; static struct kobject kobj_sunxi_usb; static struct usb_scan_info g_usb_scan_info; +#endif static struct usb_cfg g_usb_cfg; @@ -398,6 +402,7 @@ static __s32 usb_script_parse(struct usb_cfg *cfg) } } +#ifdef CONFIG_USB_SUNXI_HACK // https://i.imgur.com/Bi6sXpg.jpg for(i = 1; i < cfg->usbc_num; i++) { memset(&cfg->port[i],0,sizeof(cfg->port[0])); @@ -405,6 +410,7 @@ static __s32 usb_script_parse(struct usb_cfg *cfg) cfg->port[0].enable = 1; cfg->port[0].port_type = USB_PORT_TYPE_OTG; cfg->port[0].detect_type = USB_DETECT_TYPE_DP_DM; +#endif return 0; } @@ -560,6 +566,7 @@ static __s32 get_usb_cfg(struct usb_cfg *cfg) return 0; } +#ifdef CONFIG_USB_SUNXI_HACK static ssize_t show_usb_role(struct device *dev, struct device_attribute *attr, char *buf) { enum usb_role role = USB_ROLE_NULL; @@ -600,6 +607,7 @@ static ssize_t store_usb_role(struct device *dev, struct device_attribute *attr, } static DEVICE_ATTR(usb_role, 0644, show_usb_role, store_usb_role); +#endif static int __init usb_manager_init(void) { @@ -663,10 +671,12 @@ static int __init usb_manager_init(void) #endif DMSG_MANAGER_DEBUG("[sw usb]: usb_manager_init end\n"); +#ifdef CONFIG_USB_SUNXI_HACK // Create /sys/devices/sunxi_usb dev_attr_sunxi_usb = root_device_register("sunxi_usb"); kobj_sunxi_usb = dev_attr_sunxi_usb->kobj; sysfs_create_file(&kobj_sunxi_usb, &dev_attr_usb_role.attr); +#endif return 0; } @@ -706,9 +716,10 @@ static void __exit usb_manager_exit(void) usb_hw_scan_exit(&g_usb_cfg); } #endif - +#ifdef CONFIG_USB_SUNXI_HACK sysfs_remove_file(&kobj_sunxi_usb, &dev_attr_usb_role.attr); root_device_unregister(dev_attr_sunxi_usb); +#endif usbc0_platform_device_exit(&g_usb_cfg.port[0]); return; } diff --git a/drivers/usb/sunxi_usb/manager/usb_msg_center.c b/drivers/usb/sunxi_usb/manager/usb_msg_center.c index d850b9f2..50ece55e 100644 --- a/drivers/usb/sunxi_usb/manager/usb_msg_center.c +++ b/drivers/usb/sunxi_usb/manager/usb_msg_center.c @@ -57,10 +57,12 @@ static void set_usb_role(struct usb_msg_center_info *center_info, enum usb_role return; } +#ifdef CONFIG_USB_SUNXI_HACK void _set_usb_role(enum usb_role role) { set_usb_role(&g_center_info, role); } +#endif /* void app_insmod_usb_host(void) diff --git a/drivers/usb/sunxi_usb/manager/usb_msg_center.h b/drivers/usb/sunxi_usb/manager/usb_msg_center.h index 70fc048e..c4486e69 100644 --- a/drivers/usb/sunxi_usb/manager/usb_msg_center.h +++ b/drivers/usb/sunxi_usb/manager/usb_msg_center.h @@ -52,7 +52,9 @@ void hw_insmod_usb_device(void); void hw_rmmod_usb_device(void); enum usb_role get_usb_role(void); +#ifdef CONFIG_USB_SUNXI_HACK void _set_usb_role(enum usb_role role); +#endif void usb_msg_center(struct usb_cfg *cfg); s32 usb_msg_center_init(struct usb_cfg *cfg); |