--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -2777,6 +2777,13 @@ config SEC_THERMISTOR
help
Use thermistor driver for checking temperature near AP chip.
+config FORCE_FAST_CHARGE
+ bool "Force AC charge mode at will"
+ default y
+ help
+ A simple sysfs interface to force adapters that
+ are detected as USB to charge as AC.
+
config SEC_FACTORY
bool "Enable FACTORY Features"
default n
--- a/arch/arm/mach-msm/Makefile
+++ b/arch/arm/mach-msm/Makefile
@@ -426,3 +426,5 @@ obj-$(CONFIG_SEC_THERMISTOR) += sec_ther
endif
obj-$(CONFIG_BT_BCM4335) += board-bluetooth-bcm4335.o
+obj-$(CONFIG_FORCE_FAST_CHARGE) += fastchg.o
+
--- a/drivers/battery/max77693_charger.c
+++ b/drivers/battery/max77693_charger.c
@@ -16,6 +16,10 @@
#include "../../arch/arm/mach-msm/board-8064.h"
#endif
+#ifdef CONFIG_FORCE_FAST_CHARGE
+#include <linux/fastchg.h>
+#endif
+
#define ENABLE 1
#define DISABLE 0
@@ -391,6 +395,14 @@ static void max77693_set_charge_current(
max77693_write_reg(charger->max77693->i2c,
MAX77693_CHG_REG_CHG_CNFG_02, reg_data);
} else {
+#ifdef CONFIG_FORCE_FAST_CHARGE
+ if (force_fast_charge == 1 && cur < 1000 && charger->cable_type == POWER_SUPPLY_TYPE_USB) {
+ cur = 1000;
+ pr_info("USB fast charging is ON - %dmA max.\n", cur);
+ } else {
+ pr_info("USB fast charging is OFF - %dmA max.\n", cur);
+ }
+#endif
reg_data |= ((cur * 3 / 100) << 0);
max77693_write_reg(charger->max77693->i2c,
MAX77693_CHG_REG_CHG_CNFG_02, reg_data);
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1184,6 +1184,10 @@ static int check_version(Elf_Shdr *sechd
unsigned int i, num_versions;
struct modversion_info *versions;
+ // Disable module checking for exfat
+ if(!strncmp("exfat_", mod->name, 6))
+ return 1;
+
/* Exporting module didn't supply crcs? OK, we're already tainted. */
if (!crc)
return 1;