Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/sun-nontendocm-kernel.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormadmonkey1907 <madfkingmonkey@gmail.com>2018-02-27 19:36:03 +0300
committerGitHub <noreply@github.com>2018-02-27 19:36:03 +0300
commit2aacafac50fc547a326a739f6828a91b37381dd2 (patch)
tree00d901ac6daf42d4f51a5e30115003c59d3e6c75
parentfc514f54abe4b1d1815341edffd9b66660136f67 (diff)
parent3050d7e149b6c535cdb554daa9ec501198fbf212 (diff)
Merge pull request #3 from DanTheMan827/master
Add ifdef checks to enable or disable the sunxi_usb hacks
-rw-r--r--arch/arm/configs/sun_nontendocm_defconfig1
-rw-r--r--drivers/usb/sunxi_usb/Kconfig3
-rw-r--r--drivers/usb/sunxi_usb/hcd/hcd0/sunxi_hcd0.c2
-rw-r--r--drivers/usb/sunxi_usb/manager/usb_manager.c13
-rw-r--r--drivers/usb/sunxi_usb/manager/usb_msg_center.c2
-rw-r--r--drivers/usb/sunxi_usb/manager/usb_msg_center.h2
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);