forked from rubenslte/android_kernel_samsung_msm8226
Compare commits
65
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33fde7c79b | ||
|
|
bc63c04b77 | ||
|
|
217278a25e | ||
|
|
aa47393ac9 | ||
|
|
fa6bf8aae4 | ||
|
|
c1d4a55b71 | ||
|
|
5ae02bef27 | ||
|
|
5a75e7cfa0 | ||
|
|
05be1e7e5a | ||
|
|
38cdff1e94 | ||
|
|
d77c3d5864 | ||
|
|
d0fb75e434 | ||
|
|
1cfccf2bd6 | ||
|
|
37f5700deb | ||
|
|
27776d17b1 | ||
|
|
89d19456c6 | ||
|
|
cb4cd8c867 | ||
|
|
65b94c0848 | ||
|
|
105b2c3c11 | ||
|
|
0a9d23f5a9 | ||
|
|
db42761076 | ||
|
|
0465cb2b1b | ||
|
|
c4191aaba7 | ||
|
|
c1390269a8 | ||
|
|
108a293bfb | ||
|
|
55213352ff | ||
|
|
11eed246bf | ||
|
|
fc7fdbc96c | ||
|
|
6c835c082d | ||
|
|
ec231f749e | ||
|
|
22cc8818d4 | ||
|
|
f0b8e9e44b | ||
|
|
6fa86e0e6d | ||
|
|
a2854e4f01 | ||
|
|
1435e43b39 | ||
|
|
2cdb85c803 | ||
|
|
5ad6c30e39 | ||
|
|
a12bee8c4d | ||
|
|
2f490c7099 | ||
|
|
2d1ee14b86 | ||
|
|
3b4dd0e13f | ||
|
|
8294ddad9a | ||
|
|
4b28ed8781 | ||
|
|
af262d4b6a | ||
|
|
6c89e3f369 | ||
|
|
01d1b74604 | ||
|
|
362bd6541f | ||
|
|
a580966985 | ||
|
|
ad3a244b23 | ||
|
|
b21f81c136 | ||
|
|
339fb00d09 | ||
|
|
d156ebf3c6 | ||
|
|
1f6c0a04ce | ||
|
|
e4fe73d6ca | ||
|
|
acc2711b0e | ||
|
|
92284b6167 | ||
|
|
50e6e0a7bf | ||
|
|
a78ab2e394 | ||
|
|
ed83a05b2d | ||
|
|
33ebfecd87 | ||
|
|
b9965297b1 | ||
|
|
b4778b70f0 | ||
|
|
fe627a1d42 | ||
|
|
898e407b05 | ||
|
|
fa28b70845 |
@@ -11,19 +11,17 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
&spmi_bus {
|
||||
qcom,pm8226@1 {
|
||||
qcom,leds@d300 {
|
||||
compatible = "qcom,leds-qpnp";
|
||||
status = "okay";
|
||||
reg = <0xd300 0x100>;
|
||||
label = "flash";
|
||||
flash-boost-supply = <&pm8226_chg_boost>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
led_flash0: qcom,camera-led-flash {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,camera-led-flash";
|
||||
qcom,flash-type = <1>;
|
||||
qcom,flash-source = <&pm8226_flash0>;
|
||||
qcom,torch-source = <&pm8226_torch>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@20 {
|
||||
cell-index = <20>;
|
||||
compatible = "i2c-gpio";
|
||||
@@ -47,14 +45,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
led_flash0: qcom,camera-led-flash {
|
||||
cell-index = <0>;
|
||||
compatible = "qcom,camera-led-flash";
|
||||
qcom,flash-type = <1>;
|
||||
qcom,flash-source = <&pm8226_flash0 &pm8226_flash1>;
|
||||
qcom,torch-source = <&pm8226_torch>;
|
||||
};
|
||||
|
||||
spi@f9923000 {
|
||||
eeprom0: qcom,eeprom@0 {
|
||||
compatible = "qcom,eeprom";
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
battery,temp_check_type = <2>; /* SEC_BATTERY_TEMP_CHECK_TEMP */
|
||||
battery,temp_check_count = <1>;
|
||||
battery,full_check_type = <2>; /* SEC_BATTERY_FULLCHARGED_FG_CURRENT */
|
||||
battery,full_check_type_2nd = <3>; /* SEC_BATTERY_FULLCHARGED_TIME */
|
||||
battery,full_check_count = <2>;
|
||||
battery,full_check_type_2nd = <2>; /* SEC_BATTERY_FULLCHARGED_FG_CURRENT */
|
||||
battery,full_check_count = <1>;
|
||||
battery,chg_gpio_full_check = <0>;
|
||||
battery,chg_polarity_full_check = <1>;
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
SEC_BATTERY_FULL_CONDITION_NOTIMEFULL |
|
||||
SEC_BATTERY_FULL_CONDITION_VCELL */
|
||||
battery,full_condition_type = <13>;
|
||||
battery,full_condition_soc = <95>;
|
||||
battery,full_condition_soc = <93>;
|
||||
battery,full_condition_vcell = <4250>;
|
||||
|
||||
battery,recharge_check_count = <1>;
|
||||
@@ -64,17 +64,22 @@
|
||||
battery,recharging_total_time = <5400>;
|
||||
battery,charging_reset_time = <0>;
|
||||
|
||||
battery,swelling_full_check_current = <170>;
|
||||
battery,swelling_high_rechg_voltage = <4150>;
|
||||
battery,swelling_low_rechg_voltage = <4050>;
|
||||
|
||||
charger {
|
||||
status = "disable"
|
||||
/* Charger */
|
||||
battery,charger_name = "qpnp-chg";
|
||||
battery,ovp_uvlo_check_type = <3>; /* SEC_BATTERY_OVP_UVLO_CHGPOLLING */
|
||||
battery,full_check_type = <2>; /* SEC_BATTERY_FULLCHARGED_FG_CURRENT */
|
||||
battery,chg_float_voltage = <4350>;
|
||||
|
||||
battery,input_current_limit = <1000 500 500 1000 500 1000 1000 500 500 1000 650 1000 1000 500 500 300 1000 1000 300 1000 1000 500 500>;
|
||||
battery,fast_charging_current = <1000 0 500 1000 500 1000 1000 500 0 1000 750 1000 1000 (-1) 500 300 1000 1000 300 1000 1000 0 0>;
|
||||
battery,full_check_current_1st = <170 0 170 170 170 170 170 170 0 170 170 170 170 0 170 170 170 170 170 170 170 0 0>;
|
||||
battery,full_check_current_2nd = <2400 0 2400 2400 2400 2400 2400 2400 0 2400 2400 2400 2400 0 2400 2400 2400 2400 2400 2400 2400 0 0>;
|
||||
battery,full_check_current_2nd = <170 0 170 170 170 170 170 170 0 170 170 170 170 0 170 170 170 170 170 170 170 0 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -411,10 +411,6 @@
|
||||
|
||||
&spmi_bus {
|
||||
qcom,pm8226@0 {
|
||||
pm8226_chg: qcom,charger {
|
||||
qcom,ext-ovp-present = <0>;
|
||||
};
|
||||
|
||||
qcom,leds@a300 {
|
||||
status = "okay";
|
||||
qcom,led_mpp_4 {
|
||||
@@ -642,7 +638,6 @@
|
||||
};
|
||||
|
||||
&pm8226_chg {
|
||||
qcom,charging-disabled;
|
||||
qcom,battery-data = <&mtp_batterydata>;
|
||||
qcom,cool-bat-decidegc = <(-50)>;
|
||||
qcom,warm-bat-decidegc = <700>;
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2556,7 +2518,7 @@ CONFIG_IR_LIRC_CODEC=y
|
||||
#
|
||||
# CONFIG_MSM_CAMERA is not set
|
||||
CONFIG_MSMB_CAMERA=y
|
||||
CONFIG_MSMB_CAMERA_DEBUG=y
|
||||
# CONFIG_MSMB_CAMERA_DEBUG is not set
|
||||
CONFIG_MSM_CAMERA_SENSOR=y
|
||||
CONFIG_MSM_CPP=y
|
||||
CONFIG_MSM_CCI=y
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3159,78 +3120,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3300,20 +3189,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3321,7 +3196,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3411,7 +3285,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3492,7 +3366,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3663,7 +3536,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3672,7 +3544,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3742,7 +3613,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3750,11 +3620,8 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
# CONFIG_VIBETONZ is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3779,12 +3646,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3916,7 +3783,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3980,6 +3847,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4080,8 +3948,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4097,10 +3965,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4118,9 +3984,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4152,7 +4017,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4179,6 +4044,7 @@ CONFIG_KPROBE_EVENT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4191,6 +4057,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4238,7 +4105,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4266,7 +4132,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2556,7 +2518,7 @@ CONFIG_IR_LIRC_CODEC=y
|
||||
#
|
||||
# CONFIG_MSM_CAMERA is not set
|
||||
CONFIG_MSMB_CAMERA=y
|
||||
CONFIG_MSMB_CAMERA_DEBUG=y
|
||||
# CONFIG_MSMB_CAMERA_DEBUG is not set
|
||||
CONFIG_MSM_CAMERA_SENSOR=y
|
||||
CONFIG_MSM_CPP=y
|
||||
CONFIG_MSM_CCI=y
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3159,78 +3120,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3300,20 +3189,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3321,7 +3196,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3411,7 +3285,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3492,7 +3366,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3663,7 +3536,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3672,7 +3544,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3742,7 +3613,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3753,8 +3623,6 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
CONFIG_VIBRATOR_UPDATE=y
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3779,12 +3647,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3916,7 +3784,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3980,6 +3848,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4080,8 +3949,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4097,10 +3966,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4118,9 +3985,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4152,7 +4018,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4179,6 +4045,7 @@ CONFIG_KPROBE_EVENT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4191,6 +4058,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4238,7 +4106,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4266,7 +4133,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1622,8 +1618,8 @@ CONFIG_QSEECOM=y
|
||||
# CONFIG_QFP_FUSE is not set
|
||||
# CONFIG_QPNP_MISC is not set
|
||||
CONFIG_SEC_MISC=y
|
||||
CONFIG_CHECK_SIMSLOT_COUNT=y
|
||||
CONFIG_CHECK_SIMSLOT_COUNT_GPIO=66
|
||||
# CONFIG_CHECK_SIMSLOT_COUNT is not set
|
||||
# CONFIG_CHECK_SIMSLOT_COUNT_GPIO is not set
|
||||
# CONFIG_BCM2079X_NFC_I2C is not set
|
||||
# CONFIG_SEC_NFC_I2C is not set
|
||||
# CONFIG_SEC_NFC is not set
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2556,7 +2518,7 @@ CONFIG_IR_LIRC_CODEC=y
|
||||
#
|
||||
# CONFIG_MSM_CAMERA is not set
|
||||
CONFIG_MSMB_CAMERA=y
|
||||
CONFIG_MSMB_CAMERA_DEBUG=y
|
||||
# CONFIG_MSMB_CAMERA_DEBUG is not set
|
||||
CONFIG_MSM_CAMERA_SENSOR=y
|
||||
CONFIG_MSM_CPP=y
|
||||
CONFIG_MSM_CCI=y
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3159,78 +3120,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3300,20 +3189,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3321,7 +3196,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3411,7 +3285,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3492,7 +3366,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3663,7 +3536,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3672,7 +3544,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3742,7 +3613,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3750,11 +3620,8 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
# CONFIG_VIBETONZ is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3779,12 +3646,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3915,7 +3782,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3979,6 +3846,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4079,8 +3947,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4096,10 +3964,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4117,9 +3983,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4151,7 +4016,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4178,6 +4043,7 @@ CONFIG_KPROBE_EVENT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4190,6 +4056,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4237,7 +4104,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4265,7 +4131,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -124,7 +124,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
# CONFIG_RD_XZ is not set
|
||||
CONFIG_RD_XZ=y
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3160,78 +3121,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3301,20 +3190,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3322,7 +3197,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3412,7 +3286,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3493,7 +3367,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3664,7 +3537,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3673,7 +3545,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3743,7 +3614,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3751,11 +3621,8 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
# CONFIG_VIBETONZ is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
CONFIG_MSM_VIBRATOR=y
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3780,12 +3647,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3918,7 +3785,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3982,6 +3849,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4082,8 +3950,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4099,10 +3967,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4120,9 +3986,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4154,7 +4019,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4181,6 +4046,7 @@ CONFIG_KPROBE_EVENT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4193,6 +4059,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4240,7 +4107,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4268,7 +4134,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -124,7 +124,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
# CONFIG_RD_XZ is not set
|
||||
CONFIG_RD_XZ=y
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3160,78 +3121,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3301,20 +3190,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3322,7 +3197,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3412,7 +3286,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3493,7 +3367,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3664,7 +3537,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3673,7 +3545,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3743,7 +3614,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3751,11 +3621,8 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
# CONFIG_VIBETONZ is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
CONFIG_MSM_VIBRATOR=y
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3780,12 +3647,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3918,7 +3785,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3982,6 +3849,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4082,8 +3950,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4099,10 +3967,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4120,9 +3986,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4154,7 +4019,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4181,6 +4046,7 @@ CONFIG_KPROBE_EVENT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4193,6 +4059,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4240,7 +4107,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4268,7 +4134,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -124,7 +124,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
# CONFIG_RD_XZ is not set
|
||||
CONFIG_RD_XZ=y
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2304,9 +2266,9 @@ CONFIG_POWER_SUPPLY=y
|
||||
# CONFIG_QPNP_CHARGER is not set
|
||||
# CONFIG_QPNP_SEC_CHARGER is not set
|
||||
# CONFIG_LTC4088_CHARGER is not set
|
||||
CONFIG_BATTERY_BCL=y
|
||||
# CONFIG_BATTERY_BCL is not set
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
CONFIG_QPNP_BMS=y
|
||||
# CONFIG_QPNP_BMS is not set
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3160,78 +3121,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3301,20 +3190,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3322,7 +3197,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3412,7 +3286,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3493,7 +3367,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3664,7 +3537,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3673,7 +3545,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3743,7 +3614,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3751,11 +3621,8 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
# CONFIG_VIBETONZ is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
CONFIG_MSM_VIBRATOR=y
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3780,12 +3647,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3800,7 +3667,8 @@ CONFIG_BATTERY_SAMSUNG_DATA_FILE=""
|
||||
# CONFIG_FUELGAUGE_DUMMY is not set
|
||||
# CONFIG_FUELGAUGE_MAX17042 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17048 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17050 is not set
|
||||
CONFIG_FUELGAUGE_MAX17050=y
|
||||
CONFIG_FUELGAUGE_MAX17050_COULOMB_COUNTING=y
|
||||
# CONFIG_FUELGAUGE_MAX77823 is not set
|
||||
# CONFIG_CHARGER_DUMMY is not set
|
||||
# CONFIG_CHARGER_SMB328 is not set
|
||||
@@ -3918,7 +3786,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3982,6 +3850,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4082,8 +3951,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4099,10 +3968,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4120,9 +3987,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4154,7 +4020,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4181,6 +4047,7 @@ CONFIG_KPROBE_EVENT=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4193,6 +4060,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4240,7 +4108,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4268,7 +4135,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -98,10 +98,10 @@ CONFIG_CGROUP_FREEZER=y
|
||||
# CONFIG_CPUSETS is not set
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -124,7 +124,7 @@ CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
# CONFIG_RD_XZ is not set
|
||||
CONFIG_RD_XZ=y
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||
@@ -135,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -179,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -194,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -238,17 +237,17 @@ CONFIG_BLOCK_SUPPORT_STLOG=y
|
||||
#
|
||||
CONFIG_IOSCHED_NOOP=y
|
||||
# CONFIG_IOSCHED_TEST is not set
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_ROW=y
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_ROW is not set
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
CONFIG_IOSCHED_BFQ=y
|
||||
CONFIG_CGROUP_BFQIO=y
|
||||
# CONFIG_DEFAULT_DEADLINE is not set
|
||||
# CONFIG_DEFAULT_ROW is not set
|
||||
CONFIG_DEFAULT_CFQ=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_BFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="cfq"
|
||||
CONFIG_DEFAULT_NOOP=y
|
||||
CONFIG_DEFAULT_IOSCHED="noop"
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK is not set
|
||||
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
|
||||
# CONFIG_INLINE_SPIN_LOCK is not set
|
||||
@@ -670,9 +669,9 @@ CONFIG_MSM_N_WAY_SMD=y
|
||||
CONFIG_MSM_N_WAY_SMSM=y
|
||||
CONFIG_MSM_SMP2P=y
|
||||
CONFIG_MSM_SMP2P_TEST=y
|
||||
CONFIG_MSM_RESET_MODEM=y
|
||||
CONFIG_MSM_SMD_LOGGING=y
|
||||
CONFIG_MSM_IPC_LOGGING=y
|
||||
# CONFIG_MSM_RESET_MODEM is not set
|
||||
# CONFIG_MSM_SMD_LOGGING is not set
|
||||
# CONFIG_MSM_IPC_LOGGING is not set
|
||||
CONFIG_MSM_SMD_NMEA=y
|
||||
CONFIG_MSM_SMD_TTY=y
|
||||
CONFIG_MSM_SMD_QMI=y
|
||||
@@ -685,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -766,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -878,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -905,7 +901,7 @@ CONFIG_AEABI=y
|
||||
CONFIG_HAVE_ARCH_PFN_VALID=y
|
||||
CONFIG_HIGHMEM=y
|
||||
# CONFIG_HIGHPTE is not set
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
# CONFIG_HW_PERF_EVENTS is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_FLATMEM=y
|
||||
@@ -983,11 +979,10 @@ CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
|
||||
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1010,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1348,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1384,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1430,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1622,8 +1618,8 @@ CONFIG_QSEECOM=y
|
||||
# CONFIG_QFP_FUSE is not set
|
||||
# CONFIG_QPNP_MISC is not set
|
||||
CONFIG_SEC_MISC=y
|
||||
CONFIG_CHECK_SIMSLOT_COUNT=y
|
||||
CONFIG_CHECK_SIMSLOT_COUNT_GPIO=66
|
||||
# CONFIG_CHECK_SIMSLOT_COUNT is not set
|
||||
# CONFIG_CHECK_SIMSLOT_COUNT_GPIO is not set
|
||||
# CONFIG_BCM2079X_NFC_I2C is not set
|
||||
# CONFIG_SEC_NFC_I2C is not set
|
||||
# CONFIG_SEC_NFC is not set
|
||||
@@ -1673,43 +1669,17 @@ CONFIG_DUALWAVE=y
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1728,7 +1698,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1901,7 +1870,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1936,14 +1905,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3 is not set
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2062,8 +2024,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2103,7 +2065,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM is not set
|
||||
# CONFIG_SERIAL_MSM_HS is not set
|
||||
CONFIG_SERIAL_MSM_HSL=y
|
||||
CONFIG_SERIAL_MSM_HSL_CONSOLE=y
|
||||
# CONFIG_SERIAL_MSM_HSL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_BCM_BT_LPM is not set
|
||||
# CONFIG_SERIAL_TIMBERDALE is not set
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@@ -2806,8 +2768,8 @@ CONFIG_RADIO_ADAPTERS=y
|
||||
#
|
||||
# Texas Instruments WL128x FM driver (ST based)
|
||||
#
|
||||
CONFIG_RADIO_IRIS=y
|
||||
CONFIG_RADIO_IRIS_TRANSPORT=y
|
||||
# CONFIG_RADIO_IRIS is not set
|
||||
# CONFIG_RADIO_IRIS_TRANSPORT is not set
|
||||
# CONFIG_JPN_DEMUX_MOD is not set
|
||||
# CONFIG_TDMB is not set
|
||||
# CONFIG_ISDBTMM is not set
|
||||
@@ -2881,7 +2843,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3160,78 +3121,6 @@ CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=y
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_ACRUX=y
|
||||
# CONFIG_HID_ACRUX_FF is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_PRODIKEYS=y
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_DRAGONRISE=y
|
||||
# CONFIG_DRAGONRISE_FF is not set
|
||||
CONFIG_HID_EMS_FF=y
|
||||
CONFIG_HID_ELECOM=y
|
||||
CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
CONFIG_HID_KEYTOUCH=y
|
||||
CONFIG_HID_KYE=y
|
||||
CONFIG_HID_UCLOGIC=y
|
||||
CONFIG_HID_WALTOP=y
|
||||
CONFIG_HID_GYRATION=y
|
||||
CONFIG_HID_TWINHAN=y
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
# CONFIG_HID_KK_UPGRADE is not set
|
||||
CONFIG_HID_LCPOWER=y
|
||||
CONFIG_HID_LOGITECH=y
|
||||
CONFIG_HID_LOGITECH_DJ=y
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
CONFIG_HID_MAGICMOUSE=y
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
#
|
||||
@@ -3301,20 +3190,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3322,7 +3197,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3412,7 +3286,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3493,7 +3367,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3664,7 +3537,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3673,7 +3545,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3743,7 +3614,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3751,11 +3621,8 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
# CONFIG_VIBETONZ is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
# CONFIG_MOTOR_DRV_DRV2603 is not set
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3780,12 +3647,12 @@ CONFIG_PM_DEVFREQ=y
|
||||
#
|
||||
# DEVFREQ Governors
|
||||
#
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
CONFIG_DEVFREQ_GOV_MSM_ADRENO_TZ=y
|
||||
CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
# CONFIG_DEVFREQ_GOV_MSM_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# DEVFREQ Drivers
|
||||
@@ -3916,7 +3783,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3980,6 +3847,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4080,8 +3948,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4097,10 +3965,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4118,9 +3984,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4152,7 +4017,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4180,6 +4045,7 @@ CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
# CONFIG_FORCE_PAGES is not set
|
||||
@@ -4191,6 +4057,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4238,7 +4105,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4266,7 +4132,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
|
||||
@@ -100,10 +100,8 @@ CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -114,6 +112,7 @@ CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_UTS_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_PID_NS=y
|
||||
CONFIG_NET_NS=y
|
||||
# CONFIG_SCHED_AUTOGROUP is not set
|
||||
@@ -136,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -180,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -195,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -686,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -724,8 +723,8 @@ CONFIG_MSM_PIL_PRONTO=y
|
||||
CONFIG_MSM_SCM=y
|
||||
# CONFIG_MSM_BUSPM_DEV is not set
|
||||
# CONFIG_MSM_TZ_LOG is not set
|
||||
# CONFIG_MSM_RPM_LOG is not set
|
||||
# CONFIG_MSM_RPM_STATS_LOG is not set
|
||||
CONFIG_MSM_RPM_LOG=y
|
||||
CONFIG_MSM_RPM_STATS_LOG=y
|
||||
# CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG is not set
|
||||
CONFIG_MSM_DIRECT_SCLK_ACCESS=y
|
||||
CONFIG_IOMMU_API=y
|
||||
@@ -767,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -879,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -988,7 +983,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1011,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1349,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1385,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1431,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1674,44 +1669,9 @@ CONFIG_DUALWAVE=y
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI is not set
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1730,7 +1690,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1903,7 +1862,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1938,14 +1897,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3=y
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2064,8 +2016,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2303,15 +2255,12 @@ CONFIG_POWER_SUPPLY=y
|
||||
# CONFIG_SMB358_CHARGER is not set
|
||||
# CONFIG_BATTERY_BQ27541 is not set
|
||||
# CONFIG_BATTERY_BQ28400 is not set
|
||||
# CONFIG_QPNP_CHARGER is not set
|
||||
CONFIG_BATTERY_SAMSUNG=y
|
||||
CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_QPNP_CHARGER=y
|
||||
# CONFIG_QPNP_SEC_CHARGER is not set
|
||||
# CONFIG_LTC4088_CHARGER is not set
|
||||
CONFIG_BATTERY_BCL=y
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
CONFIG_QPNP_BMS=y
|
||||
# CONFIG_BATTERY_SWELLING is not set
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
@@ -2575,6 +2524,7 @@ CONFIG_MSM_ISPIF=y
|
||||
# CONFIG_S5K4E5YA is not set
|
||||
# CONFIG_S5K4H5YB is not set
|
||||
CONFIG_S5K6A3YX=y
|
||||
CONFIG_IMX175=y
|
||||
# CONFIG_IMX134 is not set
|
||||
# CONFIG_SR352 is not set
|
||||
# CONFIG_SR030PC50 is not set
|
||||
@@ -2582,7 +2532,6 @@ CONFIG_S5K6A3YX=y
|
||||
# CONFIG_SR200PC20 is not set
|
||||
# CONFIG_S5K4ECGX is not set
|
||||
# CONFIG_IMX135 is not set
|
||||
CONFIG_IMX175=y
|
||||
# CONFIG_S5K6B2YX is not set
|
||||
# CONFIG_OV2720 is not set
|
||||
# CONFIG_MT9M114 is not set
|
||||
@@ -2887,7 +2836,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3204,37 +3152,31 @@ CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
# CONFIG_HID_PETALYNX is not set
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_ROCCAT is not set
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SONY is not set
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SUNPLUS is not set
|
||||
# CONFIG_HID_GREENASIA is not set
|
||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_TOPSEED is not set
|
||||
# CONFIG_HID_THRUSTMASTER is not set
|
||||
# CONFIG_HID_WACOM is not set
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_ZAGG is not set
|
||||
# CONFIG_HID_ZEROPLUS is not set
|
||||
# CONFIG_HID_ZYDACRON is not set
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
@@ -3305,21 +3247,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
#
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3327,7 +3254,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3417,7 +3343,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3498,7 +3424,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3669,7 +3594,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3678,7 +3602,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3713,7 +3636,7 @@ CONFIG_SEC_OOM_KILLER=y
|
||||
# CONFIG_ANDROID_SWITCH is not set
|
||||
# CONFIG_RUNTIME_COMPCACHE is not set
|
||||
# CONFIG_SAMP_HOTNESS is not set
|
||||
CONFIG_ANDROID_INTF_ALARM_DEV=y
|
||||
CONFIG_ANDROID_INTF_ALARM_DEV=y
|
||||
# CONFIG_PHONE is not set
|
||||
# CONFIG_USB_WPAN_HCD is not set
|
||||
|
||||
@@ -3748,7 +3671,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3756,13 +3678,9 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
CONFIG_SS_VIBRATOR=y
|
||||
# CONFIG_TACTILE_ASSIST is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
CONFIG_MOTOR_DRV_DRV2603=y
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_ISA1000 is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3799,10 +3717,30 @@ CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
#
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# CONFIG_BIF is not set
|
||||
CONFIG_BATTERY_SAMSUNG=y
|
||||
CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_BATTERY_SAMSUNG_DATA=y
|
||||
# CONFIG_CHARGING_VZWCONCEPT is not set
|
||||
CONFIG_BATTERY_SWELLING=y
|
||||
# CONFIG_FUELGAUGE_DUMMY is not set
|
||||
# CONFIG_FUELGAUGE_MAX17042 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17048 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17050 is not set
|
||||
# CONFIG_FUELGAUGE_MAX77823 is not set
|
||||
# CONFIG_CHARGER_DUMMY is not set
|
||||
# CONFIG_CHARGER_SMB328 is not set
|
||||
# CONFIG_CHARGER_SMB358 is not set
|
||||
# CONFIG_CHARGER_SMB1357 is not set
|
||||
# CONFIG_CHARGER_BQ24157 is not set
|
||||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24191 is not set
|
||||
# CONFIG_CHARGER_BQ24260 is not set
|
||||
# CONFIG_CHARGER_MAX77823 is not set
|
||||
# CONFIG_CHARGER_SM5414 is not set
|
||||
CONFIG_SAMSUNG_LPM_MODE=y
|
||||
# CONFIG_SAMSUNG_BATTERY_ENG_TEST is not set
|
||||
# CONFIG_SAMSUNG_BATTERY_FACTORY is not set
|
||||
# CONFIG_DISABLE_SAVE_CAPACITY_MAX is not set
|
||||
# CONFIG_EN_OOPS is not set
|
||||
# CONFIG_CONTROL_OTG_POPUP is not set
|
||||
CONFIG_SENSORS=y
|
||||
@@ -3902,7 +3840,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3966,6 +3904,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4066,8 +4005,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4083,12 +4022,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4106,9 +4041,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4140,7 +4074,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4159,7 +4093,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
||||
CONFIG_KPROBE_EVENT=y
|
||||
# CONFIG_CPU_FREQ_SWITCH_PROFILER is not set
|
||||
# CONFIG_RING_BUFFER_BENCHMARK is not set
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_DMA_API_DEBUG is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_PANIC_ON_DATA_CORRUPTION is not set
|
||||
@@ -4167,6 +4101,7 @@ CONFIG_DYNAMIC_DEBUG=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4179,6 +4114,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4196,6 +4132,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# PowerManagement Feature
|
||||
#
|
||||
CONFIG_SEC_PM=y
|
||||
# CONFIG_SEC_PM_DEBUG is not set
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_DEBUG_SET_MODULE_RONX is not set
|
||||
|
||||
@@ -4218,17 +4155,13 @@ CONFIG_KEYS=y
|
||||
# CONFIG_ENCRYPTED_KEYS is not set
|
||||
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
|
||||
# CONFIG_SECURITY_DMESG_RESTRICT is not set
|
||||
# CONFIG_SECURITY_PERF_EVENTS_RESTRICT is not set
|
||||
CONFIG_SECURITY=y
|
||||
# CONFIG_SECURITYFS is not set
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
# CONFIG_SECURITY_SELINUX_DEFAULT_ENFORCE is not set
|
||||
# CONFIG_SECURITY_SELINUX_ALWAYS_ENFORCE is not set
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
# CONFIG_SECURITY_SELINUX_ALWAYS_PERMISSIVE is not set
|
||||
CONFIG_SECURITY_SELINUX_PRETEND_ENFORCE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4236,15 +4169,12 @@ CONFIG_SECURITY_SELINUX_DEVELOP=y
|
||||
CONFIG_SECURITY_SELINUX_AVC_STATS=y
|
||||
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
|
||||
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
|
||||
# CONFIG_SEC_SELINUX is not set
|
||||
# CONFIG_SECURITY_TOMOYO is not set
|
||||
# CONFIG_SECURITY_APPARMOR is not set
|
||||
# CONFIG_SECURITY_YAMA is not set
|
||||
# CONFIG_IMA is not set
|
||||
# CONFIG_EVM is not set
|
||||
CONFIG_DEFAULT_SECURITY_SELINUX=y
|
||||
# CONFIG_DEFAULT_SECURITY_DAC is not set
|
||||
CONFIG_DEFAULT_SECURITY="selinux"
|
||||
CONFIG_CRYPTO=y
|
||||
|
||||
#
|
||||
# ICCC
|
||||
@@ -4259,7 +4189,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
@@ -4408,8 +4337,15 @@ CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_COMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
# CONFIG_XZ_DEC is not set
|
||||
# CONFIG_XZ_DEC_BCJ is not set
|
||||
CONFIG_XZ_DEC=y
|
||||
# CONFIG_XZ_DEC_X86 is not set
|
||||
# CONFIG_XZ_DEC_POWERPC is not set
|
||||
# CONFIG_XZ_DEC_IA64 is not set
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
# CONFIG_XZ_DEC_ARMTHUMB is not set
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
CONFIG_XZ_DEC_BCJ=y
|
||||
# CONFIG_XZ_DEC_TEST is not set
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
|
||||
@@ -100,10 +100,8 @@ CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -114,6 +112,7 @@ CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_UTS_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_PID_NS=y
|
||||
CONFIG_NET_NS=y
|
||||
# CONFIG_SCHED_AUTOGROUP is not set
|
||||
@@ -136,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -180,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -195,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -686,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -724,8 +723,8 @@ CONFIG_MSM_PIL_PRONTO=y
|
||||
CONFIG_MSM_SCM=y
|
||||
# CONFIG_MSM_BUSPM_DEV is not set
|
||||
# CONFIG_MSM_TZ_LOG is not set
|
||||
# CONFIG_MSM_RPM_LOG is not set
|
||||
# CONFIG_MSM_RPM_STATS_LOG is not set
|
||||
CONFIG_MSM_RPM_LOG=y
|
||||
CONFIG_MSM_RPM_STATS_LOG=y
|
||||
# CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG is not set
|
||||
CONFIG_MSM_DIRECT_SCLK_ACCESS=y
|
||||
CONFIG_IOMMU_API=y
|
||||
@@ -767,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -879,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -988,7 +983,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1011,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1349,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1385,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1431,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1674,44 +1669,9 @@ CONFIG_DUALWAVE=y
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI is not set
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1730,7 +1690,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1903,7 +1862,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1937,15 +1896,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_KS01 is not set
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3=y
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2064,8 +2015,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2303,15 +2254,12 @@ CONFIG_POWER_SUPPLY=y
|
||||
# CONFIG_SMB358_CHARGER is not set
|
||||
# CONFIG_BATTERY_BQ27541 is not set
|
||||
# CONFIG_BATTERY_BQ28400 is not set
|
||||
# CONFIG_QPNP_CHARGER is not set
|
||||
CONFIG_BATTERY_SAMSUNG=y
|
||||
CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_QPNP_CHARGER=y
|
||||
# CONFIG_QPNP_SEC_CHARGER is not set
|
||||
# CONFIG_LTC4088_CHARGER is not set
|
||||
CONFIG_BATTERY_BCL=y
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
CONFIG_QPNP_BMS=y
|
||||
# CONFIG_BATTERY_SWELLING is not set
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
@@ -2575,6 +2523,7 @@ CONFIG_MSM_ISPIF=y
|
||||
# CONFIG_S5K4E5YA is not set
|
||||
CONFIG_S5K4H5YB=y
|
||||
CONFIG_S5K6A3YX=y
|
||||
# CONFIG_IMX175 is not set
|
||||
# CONFIG_IMX134 is not set
|
||||
# CONFIG_SR352 is not set
|
||||
# CONFIG_SR030PC50 is not set
|
||||
@@ -2582,7 +2531,6 @@ CONFIG_S5K6A3YX=y
|
||||
# CONFIG_SR200PC20 is not set
|
||||
# CONFIG_S5K4ECGX is not set
|
||||
# CONFIG_IMX135 is not set
|
||||
# CONFIG_IMX175 is not set
|
||||
# CONFIG_S5K6B2YX is not set
|
||||
# CONFIG_OV2720 is not set
|
||||
# CONFIG_MT9M114 is not set
|
||||
@@ -2887,7 +2835,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3204,37 +3151,31 @@ CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
# CONFIG_HID_PETALYNX is not set
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_ROCCAT is not set
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SONY is not set
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SUNPLUS is not set
|
||||
# CONFIG_HID_GREENASIA is not set
|
||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_TOPSEED is not set
|
||||
# CONFIG_HID_THRUSTMASTER is not set
|
||||
# CONFIG_HID_WACOM is not set
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_ZAGG is not set
|
||||
# CONFIG_HID_ZEROPLUS is not set
|
||||
# CONFIG_HID_ZYDACRON is not set
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
@@ -3305,21 +3246,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
#
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3327,7 +3253,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3498,7 +3423,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3669,7 +3593,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3678,7 +3601,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3713,7 +3635,7 @@ CONFIG_SEC_OOM_KILLER=y
|
||||
# CONFIG_ANDROID_SWITCH is not set
|
||||
# CONFIG_RUNTIME_COMPCACHE is not set
|
||||
# CONFIG_SAMP_HOTNESS is not set
|
||||
CONFIG_ANDROID_INTF_ALARM_DEV=y
|
||||
CONFIG_ANDROID_INTF_ALARM_DEV=y
|
||||
# CONFIG_PHONE is not set
|
||||
# CONFIG_USB_WPAN_HCD is not set
|
||||
|
||||
@@ -3748,7 +3670,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3756,13 +3677,9 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
CONFIG_SS_VIBRATOR=y
|
||||
# CONFIG_TACTILE_ASSIST is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
CONFIG_MOTOR_DRV_DRV2603=y
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_ISA1000 is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3799,10 +3716,30 @@ CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
#
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# CONFIG_BIF is not set
|
||||
CONFIG_BATTERY_SAMSUNG=y
|
||||
CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_BATTERY_SAMSUNG_DATA=y
|
||||
# CONFIG_CHARGING_VZWCONCEPT is not set
|
||||
CONFIG_BATTERY_SWELLING=y
|
||||
# CONFIG_FUELGAUGE_DUMMY is not set
|
||||
# CONFIG_FUELGAUGE_MAX17042 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17048 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17050 is not set
|
||||
# CONFIG_FUELGAUGE_MAX77823 is not set
|
||||
# CONFIG_CHARGER_DUMMY is not set
|
||||
# CONFIG_CHARGER_SMB328 is not set
|
||||
# CONFIG_CHARGER_SMB358 is not set
|
||||
# CONFIG_CHARGER_SMB1357 is not set
|
||||
# CONFIG_CHARGER_BQ24157 is not set
|
||||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24191 is not set
|
||||
# CONFIG_CHARGER_BQ24260 is not set
|
||||
# CONFIG_CHARGER_MAX77823 is not set
|
||||
# CONFIG_CHARGER_SM5414 is not set
|
||||
CONFIG_SAMSUNG_LPM_MODE=y
|
||||
# CONFIG_SAMSUNG_BATTERY_ENG_TEST is not set
|
||||
# CONFIG_SAMSUNG_BATTERY_FACTORY is not set
|
||||
# CONFIG_DISABLE_SAVE_CAPACITY_MAX is not set
|
||||
# CONFIG_EN_OOPS is not set
|
||||
# CONFIG_CONTROL_OTG_POPUP is not set
|
||||
CONFIG_SENSORS=y
|
||||
@@ -3902,7 +3839,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3966,6 +3903,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4066,8 +4004,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4083,10 +4021,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4104,9 +4040,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4138,7 +4073,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4157,7 +4092,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
||||
CONFIG_KPROBE_EVENT=y
|
||||
# CONFIG_CPU_FREQ_SWITCH_PROFILER is not set
|
||||
# CONFIG_RING_BUFFER_BENCHMARK is not set
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_DMA_API_DEBUG is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_PANIC_ON_DATA_CORRUPTION is not set
|
||||
@@ -4165,6 +4100,7 @@ CONFIG_DYNAMIC_DEBUG=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4177,6 +4113,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4194,6 +4131,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# PowerManagement Feature
|
||||
#
|
||||
CONFIG_SEC_PM=y
|
||||
# CONFIG_SEC_PM_DEBUG is not set
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_DEBUG_SET_MODULE_RONX is not set
|
||||
|
||||
@@ -4216,17 +4154,13 @@ CONFIG_KEYS=y
|
||||
# CONFIG_ENCRYPTED_KEYS is not set
|
||||
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
|
||||
# CONFIG_SECURITY_DMESG_RESTRICT is not set
|
||||
# CONFIG_SECURITY_PERF_EVENTS_RESTRICT is not set
|
||||
CONFIG_SECURITY=y
|
||||
# CONFIG_SECURITYFS is not set
|
||||
CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
# CONFIG_SECURITY_SELINUX_DEFAULT_ENFORCE is not set
|
||||
# CONFIG_SECURITY_SELINUX_ALWAYS_ENFORCE is not set
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
# CONFIG_SECURITY_SELINUX_ALWAYS_PERMISSIVE is not set
|
||||
CONFIG_SECURITY_SELINUX_PRETEND_ENFORCE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4234,15 +4168,12 @@ CONFIG_SECURITY_SELINUX_DEVELOP=y
|
||||
CONFIG_SECURITY_SELINUX_AVC_STATS=y
|
||||
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
|
||||
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
|
||||
# CONFIG_SEC_SELINUX is not set
|
||||
# CONFIG_SECURITY_TOMOYO is not set
|
||||
# CONFIG_SECURITY_APPARMOR is not set
|
||||
# CONFIG_SECURITY_YAMA is not set
|
||||
# CONFIG_IMA is not set
|
||||
# CONFIG_EVM is not set
|
||||
CONFIG_DEFAULT_SECURITY_SELINUX=y
|
||||
# CONFIG_DEFAULT_SECURITY_DAC is not set
|
||||
CONFIG_DEFAULT_SECURITY="selinux"
|
||||
CONFIG_CRYPTO=y
|
||||
|
||||
#
|
||||
# ICCC
|
||||
@@ -4257,7 +4188,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
@@ -4406,8 +4336,15 @@ CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_COMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
# CONFIG_XZ_DEC is not set
|
||||
# CONFIG_XZ_DEC_BCJ is not set
|
||||
CONFIG_XZ_DEC=y
|
||||
# CONFIG_XZ_DEC_X86 is not set
|
||||
# CONFIG_XZ_DEC_POWERPC is not set
|
||||
# CONFIG_XZ_DEC_IA64 is not set
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
# CONFIG_XZ_DEC_ARMTHUMB is not set
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
CONFIG_XZ_DEC_BCJ=y
|
||||
# CONFIG_XZ_DEC_TEST is not set
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
|
||||
@@ -100,10 +100,8 @@ CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_MEMCG=y
|
||||
CONFIG_MEMCG_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
|
||||
# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
|
||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||
# CONFIG_MEMCG_KMEM is not set
|
||||
# CONFIG_CGROUP_PERF is not set
|
||||
CONFIG_CGROUP_SCHED=y
|
||||
CONFIG_FAIR_GROUP_SCHED=y
|
||||
@@ -114,6 +112,7 @@ CONFIG_RT_GROUP_SCHED=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_UTS_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_PID_NS=y
|
||||
CONFIG_NET_NS=y
|
||||
# CONFIG_SCHED_AUTOGROUP is not set
|
||||
@@ -136,7 +135,7 @@ CONFIG_EXPERT=y
|
||||
CONFIG_UID16=y
|
||||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
@@ -180,7 +179,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_USE_GENERIC_SMP_HELPERS=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
# CONFIG_HAVE_DMA_API_DEBUG is not set
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
CONFIG_HAVE_HW_BREAKPOINT=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
|
||||
@@ -195,7 +194,6 @@ CONFIG_SECCOMP_FILTER=y
|
||||
#
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
CONFIG_BASE_SMALL=0
|
||||
CONFIG_MODULES=y
|
||||
@@ -686,6 +684,7 @@ CONFIG_MSM_QMI_INTERFACE=y
|
||||
# CONFIG_MSM_TEST_QMI_CLIENT is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
CONFIG_MSM_DEVFREQ_CPUBW=y
|
||||
# CONFIG_MSM_AVS_HW is not set
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
@@ -724,8 +723,8 @@ CONFIG_MSM_PIL_PRONTO=y
|
||||
CONFIG_MSM_SCM=y
|
||||
# CONFIG_MSM_BUSPM_DEV is not set
|
||||
# CONFIG_MSM_TZ_LOG is not set
|
||||
# CONFIG_MSM_RPM_LOG is not set
|
||||
# CONFIG_MSM_RPM_STATS_LOG is not set
|
||||
CONFIG_MSM_RPM_LOG=y
|
||||
CONFIG_MSM_RPM_STATS_LOG=y
|
||||
# CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG is not set
|
||||
CONFIG_MSM_DIRECT_SCLK_ACCESS=y
|
||||
CONFIG_IOMMU_API=y
|
||||
@@ -767,9 +766,6 @@ CONFIG_MSM_L2_SPM=y
|
||||
CONFIG_MSM_OCMEM=y
|
||||
CONFIG_MSM_OCMEM_LOCAL_POWER_CTRL=y
|
||||
# CONFIG_MSM_OCMEM_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_NONSECURE is not set
|
||||
# CONFIG_MSM_OCMEM_POWER_DEBUG is not set
|
||||
# CONFIG_MSM_OCMEM_DEBUG_ALWAYS_ON is not set
|
||||
CONFIG_MSM_OCMEM_POWER_DISABLE=y
|
||||
# CONFIG_SENSORS_ADSP is not set
|
||||
CONFIG_MSM_RTB=y
|
||||
@@ -879,7 +875,6 @@ CONFIG_SCHED_MC=y
|
||||
# CONFIG_SCHED_SMT is not set
|
||||
CONFIG_HAVE_ARM_SCU=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
# CONFIG_ARM_ARCH_TIMER_VCT_ACCESS is not set
|
||||
CONFIG_VMSPLIT_3G=y
|
||||
# CONFIG_VMSPLIT_2G is not set
|
||||
# CONFIG_VMSPLIT_1G is not set
|
||||
@@ -988,7 +983,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
# CONFIG_MSM8228_USE_ACPU_FREQ_TBL_1P6 is not set
|
||||
|
||||
#
|
||||
# ARM CPU frequency scaling drivers
|
||||
@@ -1011,7 +1005,6 @@ CONFIG_CPU_FREQ_MSM=y
|
||||
#
|
||||
CONFIG_VFP=y
|
||||
CONFIG_VFPv3=y
|
||||
CONFIG_VFPv4=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
|
||||
@@ -1349,7 +1342,7 @@ CONFIG_BRIDGE_EBT_BROUTE=y
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
|
||||
# CONFIG_NET_DSA is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_DECNET is not set
|
||||
@@ -1385,6 +1378,7 @@ CONFIG_NET_SCH_PRIO=y
|
||||
# CONFIG_NET_SCH_MQPRIO is not set
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
# CONFIG_NET_SCH_QFQ is not set
|
||||
# CONFIG_NET_SCH_INGRESS is not set
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
|
||||
#
|
||||
@@ -1431,6 +1425,7 @@ CONFIG_XPS=y
|
||||
# CONFIG_NETPRIO_CGROUP is not set
|
||||
CONFIG_BQL=y
|
||||
CONFIG_HAVE_BPF_JIT=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
# CONFIG_SOCKEV_NLMCAST is not set
|
||||
|
||||
#
|
||||
@@ -1674,44 +1669,9 @@ CONFIG_DUALWAVE=y
|
||||
#
|
||||
CONFIG_SCSI_MOD=y
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_DMA=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
# CONFIG_SCSI is not set
|
||||
# CONFIG_SCSI_DMA is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
# CONFIG_SCSI_SRP_ATTRS is not set
|
||||
CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_ISCSI_BOOT_SYSFS is not set
|
||||
# CONFIG_SCSI_UFSHCD is not set
|
||||
# CONFIG_LIBFC is not set
|
||||
# CONFIG_LIBFCOE is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_MD=y
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
@@ -1730,7 +1690,6 @@ CONFIG_DM_CRYPT=y
|
||||
# CONFIG_DM_UEVENT is not set
|
||||
# CONFIG_DM_FLAKEY is not set
|
||||
# CONFIG_DM_VERITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_CORE=y
|
||||
# CONFIG_BONDING is not set
|
||||
@@ -1903,7 +1862,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||
# CONFIG_INPUT_ENABLED is not set
|
||||
# CONFIG_KEYBOARD_ADP5588 is not set
|
||||
# CONFIG_KEYBOARD_ADP5589 is not set
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
@@ -1938,14 +1897,7 @@ CONFIG_SENSORS_HALL=y
|
||||
# CONFIG_KEYBOARD_CYPRESS_TKEY_HL is not set
|
||||
CONFIG_KEYBOARD_CYPRESS_TOUCHKEY_S3=y
|
||||
CONFIG_INPUT_MOUSE=y
|
||||
CONFIG_MOUSE_PS2=y
|
||||
CONFIG_MOUSE_PS2_ALPS=y
|
||||
CONFIG_MOUSE_PS2_LOGIPS2PP=y
|
||||
CONFIG_MOUSE_PS2_SYNAPTICS=y
|
||||
CONFIG_MOUSE_PS2_TRACKPOINT=y
|
||||
# CONFIG_MOUSE_PS2_ELANTECH is not set
|
||||
# CONFIG_MOUSE_PS2_SENTELIC is not set
|
||||
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_MOUSE_SERIAL is not set
|
||||
# CONFIG_MOUSE_APPLETOUCH is not set
|
||||
# CONFIG_MOUSE_BCM5974 is not set
|
||||
@@ -2064,8 +2016,8 @@ CONFIG_INPUT_GPIO=y
|
||||
# Hardware I/O ports
|
||||
#
|
||||
CONFIG_SERIO=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
@@ -2303,15 +2255,12 @@ CONFIG_POWER_SUPPLY=y
|
||||
# CONFIG_SMB358_CHARGER is not set
|
||||
# CONFIG_BATTERY_BQ27541 is not set
|
||||
# CONFIG_BATTERY_BQ28400 is not set
|
||||
# CONFIG_QPNP_CHARGER is not set
|
||||
CONFIG_BATTERY_SAMSUNG=y
|
||||
CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_QPNP_CHARGER=y
|
||||
# CONFIG_QPNP_SEC_CHARGER is not set
|
||||
# CONFIG_LTC4088_CHARGER is not set
|
||||
CONFIG_BATTERY_BCL=y
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
CONFIG_QPNP_BMS=y
|
||||
# CONFIG_BATTERY_SWELLING is not set
|
||||
CONFIG_HWMON=y
|
||||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
@@ -2575,6 +2524,7 @@ CONFIG_MSM_ISPIF=y
|
||||
# CONFIG_S5K4E5YA is not set
|
||||
# CONFIG_S5K4H5YB is not set
|
||||
CONFIG_S5K6A3YX=y
|
||||
CONFIG_IMX175=y
|
||||
# CONFIG_IMX134 is not set
|
||||
# CONFIG_SR352 is not set
|
||||
# CONFIG_SR030PC50 is not set
|
||||
@@ -2582,7 +2532,6 @@ CONFIG_S5K6A3YX=y
|
||||
# CONFIG_SR200PC20 is not set
|
||||
# CONFIG_S5K4ECGX is not set
|
||||
# CONFIG_IMX135 is not set
|
||||
CONFIG_IMX175=y
|
||||
# CONFIG_S5K6B2YX is not set
|
||||
# CONFIG_OV2720 is not set
|
||||
# CONFIG_MT9M114 is not set
|
||||
@@ -2887,7 +2836,6 @@ CONFIG_FB_MSM=y
|
||||
# CONFIG_FB_MSM_TRIPLE_BUFFER is not set
|
||||
# CONFIG_FB_MSM_MDP_HW is not set
|
||||
CONFIG_FB_MSM_MDSS_COMMON=y
|
||||
# CONFIG_MDP_DEBUG_FS is not set
|
||||
# CONFIG_FB_MSM_MDP22 is not set
|
||||
# CONFIG_FB_MSM_MDP30 is not set
|
||||
# CONFIG_FB_MSM_MDP31 is not set
|
||||
@@ -3204,37 +3152,31 @@ CONFIG_HID_MONTEREY=y
|
||||
CONFIG_HID_MULTITOUCH=y
|
||||
CONFIG_HID_NTRIG=y
|
||||
CONFIG_HID_ORTEK=y
|
||||
CONFIG_HID_PANTHERLORD=y
|
||||
# CONFIG_PANTHERLORD_FF is not set
|
||||
CONFIG_HID_PETALYNX=y
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
# CONFIG_HID_PETALYNX is not set
|
||||
CONFIG_HID_PICOLCD=y
|
||||
# CONFIG_HID_PICOLCD_FB is not set
|
||||
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
|
||||
# CONFIG_HID_PICOLCD_LCD is not set
|
||||
# CONFIG_HID_PICOLCD_LEDS is not set
|
||||
# CONFIG_HID_PRIMAX is not set
|
||||
CONFIG_HID_ROCCAT=y
|
||||
# CONFIG_HID_ROCCAT is not set
|
||||
# CONFIG_HID_SAITEK is not set
|
||||
CONFIG_HID_SAMSUNG=y
|
||||
CONFIG_HID_SONY=y
|
||||
# CONFIG_HID_SONY is not set
|
||||
# CONFIG_HID_SPEEDLINK is not set
|
||||
CONFIG_HID_SUNPLUS=y
|
||||
CONFIG_HID_GREENASIA=y
|
||||
# CONFIG_GREENASIA_FF is not set
|
||||
CONFIG_HID_SMARTJOYPLUS=y
|
||||
# CONFIG_SMARTJOYPLUS_FF is not set
|
||||
# CONFIG_HID_SUNPLUS is not set
|
||||
# CONFIG_HID_GREENASIA is not set
|
||||
# CONFIG_HID_SMARTJOYPLUS is not set
|
||||
# CONFIG_HID_SYNAPTICS_BT is not set
|
||||
# CONFIG_HID_TIVO is not set
|
||||
CONFIG_HID_TOPSEED=y
|
||||
CONFIG_HID_THRUSTMASTER=y
|
||||
# CONFIG_THRUSTMASTER_FF is not set
|
||||
CONFIG_HID_WACOM=y
|
||||
CONFIG_HID_WACOM_POWER_SUPPLY=y
|
||||
# CONFIG_HID_TOPSEED is not set
|
||||
# CONFIG_HID_THRUSTMASTER is not set
|
||||
# CONFIG_HID_WACOM is not set
|
||||
# CONFIG_HID_WIIMOTE is not set
|
||||
CONFIG_HID_ZAGG=y
|
||||
CONFIG_HID_ZEROPLUS=y
|
||||
# CONFIG_ZEROPLUS_FF is not set
|
||||
CONFIG_HID_ZYDACRON=y
|
||||
# CONFIG_HID_ZAGG is not set
|
||||
# CONFIG_HID_ZEROPLUS is not set
|
||||
# CONFIG_HID_ZYDACRON is not set
|
||||
# CONFIG_HID_OVR is not set
|
||||
|
||||
#
|
||||
@@ -3305,21 +3247,6 @@ CONFIG_USB_CCID_BRIDGE=y
|
||||
#
|
||||
# also be needed; see USB_STORAGE Help for more info
|
||||
#
|
||||
CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_REALTEK is not set
|
||||
CONFIG_USB_STORAGE_DATAFAB=y
|
||||
CONFIG_USB_STORAGE_FREECOM=y
|
||||
CONFIG_USB_STORAGE_ISD200=y
|
||||
CONFIG_USB_STORAGE_USBAT=y
|
||||
CONFIG_USB_STORAGE_SDDR09=y
|
||||
CONFIG_USB_STORAGE_SDDR55=y
|
||||
CONFIG_USB_STORAGE_JUMPSHOT=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
CONFIG_USB_STORAGE_CYPRESS_ATACB=y
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_STORAGE_DETECT=y
|
||||
|
||||
@@ -3327,7 +3254,6 @@ CONFIG_USB_STORAGE_DETECT=y
|
||||
# USB Imaging devices
|
||||
#
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
|
||||
#
|
||||
# USB port drivers
|
||||
@@ -3417,7 +3343,7 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y
|
||||
# CONFIG_USB_QCOM_KS_BRIDGE is not set
|
||||
CONFIG_USB_GADGET=y
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
CONFIG_USB_GADGET_DEBUG_FS=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
@@ -3498,7 +3424,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||
# CONFIG_SDIO_UART is not set
|
||||
# CONFIG_MMC_TEST is not set
|
||||
# CONFIG_MMC_SUPPORT_BKOPS_MODE is not set
|
||||
CONFIG_MMC_BLOCK_TEST=y
|
||||
# CONFIG_MMC_CPRM is not set
|
||||
|
||||
#
|
||||
@@ -3669,7 +3594,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_ASUS_OLED is not set
|
||||
# CONFIG_RTLLIB is not set
|
||||
# CONFIG_R8712U is not set
|
||||
# CONFIG_RTS5139 is not set
|
||||
# CONFIG_TRANZPORT is not set
|
||||
# CONFIG_LINE6_USB is not set
|
||||
# CONFIG_USB_SERIAL_QUATECH2 is not set
|
||||
@@ -3678,7 +3602,6 @@ CONFIG_STAGING=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_INPUT_MPU6500_SELFTEST is not set
|
||||
# CONFIG_FB_SM7XX is not set
|
||||
# CONFIG_USB_ENESTORAGE is not set
|
||||
# CONFIG_BCM_WIMAX is not set
|
||||
# CONFIG_FT1000 is not set
|
||||
|
||||
@@ -3748,7 +3671,6 @@ CONFIG_QPNP_REVID=y
|
||||
# CONFIG_IPA is not set
|
||||
# CONFIG_MSM_AVTIMER is not set
|
||||
# CONFIG_PFT is not set
|
||||
# CONFIG_SSM is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
|
||||
@@ -3756,13 +3678,9 @@ CONFIG_HAVE_CLK_PREPARE=y
|
||||
# Hardware Spinlock drivers
|
||||
#
|
||||
CONFIG_SS_VIBRATOR=y
|
||||
# CONFIG_TACTILE_ASSIST is not set
|
||||
# CONFIG_VIBRATOR_UPDATE is not set
|
||||
# CONFIG_MOTOR_DRV_ISA1400 is not set
|
||||
CONFIG_MOTOR_DRV_DRV2603=y
|
||||
# CONFIG_DRV2604_VIBRATOR is not set
|
||||
# CONFIG_MOTOR_ISA1000 is not set
|
||||
# CONFIG_MOTOR_DRV_TSP5000 is not set
|
||||
# CONFIG_MSM_VIBRATOR is not set
|
||||
# CONFIG_MAX77826_VIBRATOR is not set
|
||||
# CONFIG_CONFIG_HAPTIC_ISA1200 is not set
|
||||
@@ -3799,10 +3717,30 @@ CONFIG_DEVFREQ_GOV_MSM_CPUFREQ=y
|
||||
#
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# CONFIG_BIF is not set
|
||||
CONFIG_BATTERY_SAMSUNG=y
|
||||
CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_BATTERY_SAMSUNG_DATA=y
|
||||
# CONFIG_CHARGING_VZWCONCEPT is not set
|
||||
CONFIG_BATTERY_SWELLING=y
|
||||
# CONFIG_FUELGAUGE_DUMMY is not set
|
||||
# CONFIG_FUELGAUGE_MAX17042 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17048 is not set
|
||||
# CONFIG_FUELGAUGE_MAX17050 is not set
|
||||
# CONFIG_FUELGAUGE_MAX77823 is not set
|
||||
# CONFIG_CHARGER_DUMMY is not set
|
||||
# CONFIG_CHARGER_SMB328 is not set
|
||||
# CONFIG_CHARGER_SMB358 is not set
|
||||
# CONFIG_CHARGER_SMB1357 is not set
|
||||
# CONFIG_CHARGER_BQ24157 is not set
|
||||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24191 is not set
|
||||
# CONFIG_CHARGER_BQ24260 is not set
|
||||
# CONFIG_CHARGER_MAX77823 is not set
|
||||
# CONFIG_CHARGER_SM5414 is not set
|
||||
# CONFIG_SAMSUNG_LPM_MODE is not set
|
||||
# CONFIG_SAMSUNG_BATTERY_ENG_TEST is not set
|
||||
# CONFIG_SAMSUNG_BATTERY_FACTORY is not set
|
||||
# CONFIG_DISABLE_SAVE_CAPACITY_MAX is not set
|
||||
# CONFIG_EN_OOPS is not set
|
||||
# CONFIG_CONTROL_OTG_POPUP is not set
|
||||
CONFIG_SENSORS=y
|
||||
@@ -3902,7 +3840,7 @@ CONFIG_LOW_ORDER_SEQ_MALLOC=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
||||
CONFIG_EXT4_FS_XATTR=y
|
||||
# CONFIG_EXT4_FS_POSIX_ACL is not set
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
@@ -3966,6 +3904,7 @@ CONFIG_SDFAT_VIRTUAL_XATTR_SELINUX_LABEL="u:object_r:sdcard_external:s0"
|
||||
CONFIG_SDFAT_SUPPORT_STLOG=y
|
||||
# CONFIG_SDFAT_DEBUG is not set
|
||||
CONFIG_SDFAT_STATISTICS=y
|
||||
CONFIG_SDFAT_UEVENT=y
|
||||
|
||||
#
|
||||
# Pseudo filesystems
|
||||
@@ -4066,8 +4005,8 @@ CONFIG_NLS_UTF8=y
|
||||
#
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
@@ -4083,10 +4022,8 @@ CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_HARDLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_SYSRQ_SCHED_DEBUG is not set
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
@@ -4104,9 +4041,8 @@ CONFIG_STACKTRACE=y
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_DEBUG_INFO_REDUCED is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||
# CONFIG_DEBUG_MEMORY_INIT is not set
|
||||
@@ -4138,7 +4074,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_RING_BUFFER=y
|
||||
CONFIG_EVENT_TRACING=y
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
# CONFIG_EVENT_POWER_TRACING_DEPRECATED is not set
|
||||
CONFIG_CONTEXT_SWITCH_TRACER=y
|
||||
CONFIG_RING_BUFFER_ALLOW_SWAP=y
|
||||
CONFIG_TRACING=y
|
||||
@@ -4157,7 +4093,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
|
||||
CONFIG_KPROBE_EVENT=y
|
||||
# CONFIG_CPU_FREQ_SWITCH_PROFILER is not set
|
||||
# CONFIG_RING_BUFFER_BENCHMARK is not set
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_DMA_API_DEBUG is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_PANIC_ON_DATA_CORRUPTION is not set
|
||||
@@ -4165,6 +4101,7 @@ CONFIG_DYNAMIC_DEBUG=y
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
# CONFIG_TEST_KSTRTOX is not set
|
||||
# CONFIG_TEST_HASH is not set
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@@ -4177,6 +4114,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# Samsung Debugging Feature
|
||||
#
|
||||
# CONFIG_SEC_DEBUG is not set
|
||||
# CONFIG_SEC_FORKHANG_DEBUG is not set
|
||||
# CONFIG_SEC_DEBUG_USER is not set
|
||||
# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set
|
||||
# CONFIG_SEC_DEBUG_MSG_LOG is not set
|
||||
@@ -4194,6 +4132,7 @@ CONFIG_ARM_UNWIND=y
|
||||
# PowerManagement Feature
|
||||
#
|
||||
CONFIG_SEC_PM=y
|
||||
# CONFIG_SEC_PM_DEBUG is not set
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_DEBUG_SET_MODULE_RONX is not set
|
||||
|
||||
@@ -4223,7 +4162,6 @@ CONFIG_SECURITY_NETWORK=y
|
||||
# CONFIG_SECURITY_NETWORK_XFRM is not set
|
||||
# CONFIG_SECURITY_PATH is not set
|
||||
CONFIG_LSM_MMAP_MIN_ADDR=4096
|
||||
CONFIG_SECURITY_SELINUX_DEFAULT_PERMISSIVE=y
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set
|
||||
# CONFIG_SECURITY_SELINUX_DISABLE is not set
|
||||
@@ -4251,7 +4189,6 @@ CONFIG_CRYPTO=y
|
||||
#
|
||||
# Crypto core or helper
|
||||
#
|
||||
# CONFIG_CRYPTO_FIPS is not set
|
||||
CONFIG_CRYPTO_FIPS_INTEG_COPY_ADDRESS=0x8A008000
|
||||
CONFIG_CRYPTO_ALGAPI=y
|
||||
CONFIG_CRYPTO_ALGAPI2=y
|
||||
@@ -4400,8 +4337,15 @@ CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_LZ4_COMPRESS=y
|
||||
CONFIG_LZ4_DECOMPRESS=y
|
||||
# CONFIG_XZ_DEC is not set
|
||||
# CONFIG_XZ_DEC_BCJ is not set
|
||||
CONFIG_XZ_DEC=y
|
||||
# CONFIG_XZ_DEC_X86 is not set
|
||||
# CONFIG_XZ_DEC_POWERPC is not set
|
||||
# CONFIG_XZ_DEC_IA64 is not set
|
||||
CONFIG_XZ_DEC_ARM=y
|
||||
# CONFIG_XZ_DEC_ARMTHUMB is not set
|
||||
# CONFIG_XZ_DEC_SPARC is not set
|
||||
CONFIG_XZ_DEC_BCJ=y
|
||||
# CONFIG_XZ_DEC_TEST is not set
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_DECOMPRESS_BZIP2=y
|
||||
CONFIG_DECOMPRESS_LZMA=y
|
||||
|
||||
@@ -94,7 +94,7 @@ CONFIG_BATTERY_SAMSUNG_DATA_FILE="s3ve3g_battery_data.h"
|
||||
CONFIG_QPNP_CHARGER=y
|
||||
CONFIG_BATTERY_BCL=y
|
||||
CONFIG_QPNP_BMS=y
|
||||
# CONFIG_BATTERY_SWELLING is not set
|
||||
CONFIG_BATTERY_SWELLING=y
|
||||
|
||||
#Sec Thermistor
|
||||
CONFIG_SEC_THERMISTOR=y
|
||||
|
||||
+128
-42
@@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2013-2014,2019 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
@@ -152,6 +152,20 @@ static struct restart_notifier_block restart_notifiers[] = {
|
||||
|
||||
static int init_smem_remote_spinlock(void);
|
||||
|
||||
/**
|
||||
* smem_get_toc() - Used for getting partitions TOC
|
||||
*
|
||||
* @return - Base address off partitions TOC
|
||||
*
|
||||
* Helper function to get base address of partition TOC,
|
||||
* that is present in top 4K of first smem region.
|
||||
*/
|
||||
static struct smem_toc __iomem *smem_get_toc(void)
|
||||
{
|
||||
return smem_areas[0].virt_addr +
|
||||
smem_areas[0].size - 4 * 1024;
|
||||
}
|
||||
|
||||
/**
|
||||
* smem_phys_to_virt() - Convert a physical base and offset to virtual address
|
||||
*
|
||||
@@ -295,6 +309,7 @@ static void *__smem_get_entry(unsigned id, unsigned *size,
|
||||
int use_spinlocks = spinlocks_initialized && use_rspinlock;
|
||||
void *ret = 0;
|
||||
unsigned long flags = 0;
|
||||
uint32_t e_size;
|
||||
|
||||
if (!skip_init_check && !smem_initialized_check())
|
||||
return ret;
|
||||
@@ -308,7 +323,11 @@ static void *__smem_get_entry(unsigned id, unsigned *size,
|
||||
if (toc[id].allocated) {
|
||||
phys_addr_t phys_base;
|
||||
|
||||
*size = toc[id].size;
|
||||
e_size = toc[id].size;
|
||||
if (e_size > MSM_SHARED_RAM_SIZE)
|
||||
return ret;
|
||||
*size = e_size;
|
||||
|
||||
barrier();
|
||||
|
||||
phys_base = toc[id].reserved & BASE_ADDR_MASK;
|
||||
@@ -343,12 +362,19 @@ static void *__smem_get_entry_to_proc(unsigned id,
|
||||
bool skip_init_check,
|
||||
bool use_rspinlock)
|
||||
{
|
||||
struct smem_partition_header *hdr;
|
||||
unsigned long lflags = 0;
|
||||
void *item = NULL;
|
||||
struct smem_partition_allocation_header *alloc_hdr;
|
||||
struct smem_partition_header *hdr;
|
||||
uint32_t offset_free_uncached;
|
||||
struct smem_toc __iomem *toc;
|
||||
uint32_t offset_free_cached;
|
||||
unsigned long lflags = 0;
|
||||
uint32_t partition_size;
|
||||
uint32_t partition_num;
|
||||
uint32_t padding_data;
|
||||
uint32_t padding_hdr;
|
||||
uint32_t a_hdr_size;
|
||||
uint32_t item_size;
|
||||
void *item = NULL;
|
||||
int rc;
|
||||
|
||||
SMEM_DBG("%s(%u, %u, %u, %u, %d, %d)\n", __func__, id, *size, to_proc,
|
||||
@@ -371,8 +397,10 @@ static void *__smem_get_entry_to_proc(unsigned id,
|
||||
if (flags & SMEM_ANY_HOST_FLAG || !partitions[to_proc].offset)
|
||||
return __smem_get_entry(id, size, skip_init_check,
|
||||
use_rspinlock);
|
||||
toc = smem_get_toc();
|
||||
|
||||
partition_num = partitions[to_proc].partition_num;
|
||||
partition_size = readl_relaxed(&toc->entry[partition_num].size);
|
||||
hdr = smem_areas[0].virt_addr + partitions[to_proc].offset;
|
||||
if (unlikely(!spinlocks_initialized)) {
|
||||
rc = init_smem_remote_spinlock();
|
||||
@@ -398,11 +426,20 @@ static void *__smem_get_entry_to_proc(unsigned id,
|
||||
if (flags & SMEM_ITEM_CACHED_FLAG) {
|
||||
a_hdr_size = ALIGN(sizeof(*alloc_hdr),
|
||||
partitions[to_proc].size_cacheline);
|
||||
for (alloc_hdr = (void *)(hdr) + hdr->size - a_hdr_size;
|
||||
offset_free_cached = hdr->offset_free_cached;
|
||||
if (WARN_ON(offset_free_cached > partition_size))
|
||||
return NULL;
|
||||
|
||||
for (alloc_hdr = (void *)(hdr) + partition_size - a_hdr_size;
|
||||
(void *)(alloc_hdr) > (void *)(hdr) +
|
||||
hdr->offset_free_cached;
|
||||
offset_free_cached;
|
||||
alloc_hdr = (void *)(alloc_hdr) -
|
||||
alloc_hdr->size - a_hdr_size) {
|
||||
item_size - a_hdr_size) {
|
||||
item_size = alloc_hdr->size;
|
||||
padding_data = alloc_hdr->padding_data;
|
||||
if (WARN_ON(padding_data > item_size
|
||||
|| item_size > partition_size))
|
||||
return NULL;
|
||||
if (alloc_hdr->canary != SMEM_ALLOCATION_CANARY) {
|
||||
LOG_ERR(
|
||||
"%s: SMEM corruption detected. Partition %d to %d at %p\n",
|
||||
@@ -415,20 +452,30 @@ static void *__smem_get_entry_to_proc(unsigned id,
|
||||
}
|
||||
if (alloc_hdr->smem_type == id) {
|
||||
/* 8 byte alignment to match legacy */
|
||||
*size = ALIGN(alloc_hdr->size -
|
||||
alloc_hdr->padding_data, 8);
|
||||
item = (void *)(alloc_hdr) - alloc_hdr->size;
|
||||
*size = ALIGN(item_size - padding_data, 8);
|
||||
item = (void *)(alloc_hdr) - item_size;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
offset_free_uncached = hdr->offset_free_uncached;
|
||||
if (WARN_ON(offset_free_uncached > partition_size))
|
||||
return NULL;
|
||||
|
||||
for (alloc_hdr = (void *)(hdr) + sizeof(*hdr);
|
||||
(void *)(alloc_hdr) < (void *)(hdr) +
|
||||
hdr->offset_free_uncached;
|
||||
offset_free_uncached;
|
||||
alloc_hdr = (void *)(alloc_hdr) +
|
||||
sizeof(*alloc_hdr) +
|
||||
alloc_hdr->padding_hdr +
|
||||
alloc_hdr->size) {
|
||||
padding_hdr +
|
||||
item_size) {
|
||||
padding_hdr = alloc_hdr->padding_hdr;
|
||||
padding_data = alloc_hdr->padding_data;
|
||||
item_size = alloc_hdr->size;
|
||||
if (WARN_ON(padding_hdr > partition_size
|
||||
|| item_size > partition_size
|
||||
|| padding_data > item_size))
|
||||
return NULL;
|
||||
if (alloc_hdr->canary != SMEM_ALLOCATION_CANARY) {
|
||||
LOG_ERR(
|
||||
"%s: SMEM corruption detected. Partition %d to %d at %p\n",
|
||||
@@ -441,11 +488,10 @@ static void *__smem_get_entry_to_proc(unsigned id,
|
||||
}
|
||||
if (alloc_hdr->smem_type == id) {
|
||||
/* 8 byte alignment to match legacy */
|
||||
*size = ALIGN(alloc_hdr->size -
|
||||
alloc_hdr->padding_data, 8);
|
||||
*size = ALIGN(item_size - padding_data, 8);
|
||||
item = (void *)(alloc_hdr) +
|
||||
sizeof(*alloc_hdr) +
|
||||
alloc_hdr->padding_hdr;
|
||||
padding_hdr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -530,10 +576,17 @@ static void *alloc_item_nonsecure(unsigned id, unsigned size_in)
|
||||
void *smem_base = MSM_SHARED_RAM_BASE;
|
||||
struct smem_shared *shared = smem_base;
|
||||
struct smem_heap_entry *toc = shared->heap_toc;
|
||||
uint32_t free_offset, heap_remaining;
|
||||
void *ret = NULL;
|
||||
|
||||
if (shared->heap_info.heap_remaining >= size_in) {
|
||||
toc[id].offset = shared->heap_info.free_offset;
|
||||
heap_remaining = shared->heap_info.heap_remaining;
|
||||
free_offset = shared->heap_info.free_offset;
|
||||
if (WARN_ON(heap_remaining > MSM_SHARED_RAM_SIZE
|
||||
|| free_offset > MSM_SHARED_RAM_SIZE))
|
||||
return NULL;
|
||||
|
||||
if (heap_remaining >= size_in) {
|
||||
toc[id].offset = free_offset;
|
||||
toc[id].size = size_in;
|
||||
/*
|
||||
* wmb() is necessary to ensure the allocation data is
|
||||
@@ -545,7 +598,7 @@ static void *alloc_item_nonsecure(unsigned id, unsigned size_in)
|
||||
|
||||
shared->heap_info.free_offset += size_in;
|
||||
shared->heap_info.heap_remaining -= size_in;
|
||||
ret = smem_base + toc[id].offset;
|
||||
ret = smem_base + free_offset;
|
||||
/*
|
||||
* wmb() is necessary to ensure the heap data is consistent
|
||||
* before continuing to prevent race conditions with remote
|
||||
@@ -581,11 +634,15 @@ static void *alloc_item_secure(unsigned id, unsigned size_in, unsigned to_proc,
|
||||
void *smem_base = MSM_SHARED_RAM_BASE;
|
||||
struct smem_partition_header *hdr;
|
||||
struct smem_partition_allocation_header *alloc_hdr;
|
||||
uint32_t offset_free_uncached;
|
||||
struct smem_toc __iomem *toc;
|
||||
uint32_t offset_free_cached;
|
||||
uint32_t partition_size;
|
||||
uint32_t partition_num;
|
||||
uint32_t a_hdr_size;
|
||||
uint32_t a_data_size;
|
||||
uint32_t size_cacheline;
|
||||
uint32_t free_space;
|
||||
uint32_t partition_num;
|
||||
void *ret = NULL;
|
||||
|
||||
hdr = smem_base + partitions[to_proc].offset;
|
||||
@@ -602,27 +659,36 @@ static void *alloc_item_secure(unsigned id, unsigned size_in, unsigned to_proc,
|
||||
}
|
||||
|
||||
size_cacheline = partitions[to_proc].size_cacheline;
|
||||
free_space = hdr->offset_free_cached -
|
||||
hdr->offset_free_uncached;
|
||||
|
||||
toc = smem_get_toc();
|
||||
partition_size = readl_relaxed(&toc->entry[partition_num].size);
|
||||
|
||||
offset_free_cached = hdr->offset_free_cached;
|
||||
offset_free_uncached = hdr->offset_free_uncached;
|
||||
if (WARN_ON(offset_free_uncached > offset_free_cached
|
||||
|| offset_free_cached > partition_size))
|
||||
return NULL;
|
||||
|
||||
free_space = offset_free_cached - offset_free_uncached;
|
||||
|
||||
if (flags & SMEM_ITEM_CACHED_FLAG) {
|
||||
a_hdr_size = ALIGN(sizeof(*alloc_hdr), size_cacheline);
|
||||
a_data_size = ALIGN(size_in, size_cacheline);
|
||||
if (free_space < a_hdr_size + a_data_size) {
|
||||
if (free_space < a_hdr_size + a_data_size
|
||||
|| free_space < size_in) {
|
||||
SMEM_INFO(
|
||||
"%s: id %u not enough memory %u (required %u)\n",
|
||||
__func__, id, free_space,
|
||||
a_hdr_size + a_data_size);
|
||||
"%s: id %u not enough memory %u (required %u), (size_in %u)\n",
|
||||
__func__, id, free_space,
|
||||
a_hdr_size + a_data_size, size_in);
|
||||
return ret;
|
||||
}
|
||||
alloc_hdr = (void *)(hdr) + hdr->offset_free_cached -
|
||||
a_hdr_size;
|
||||
alloc_hdr = (void *)(hdr) + offset_free_cached - a_hdr_size;
|
||||
alloc_hdr->canary = SMEM_ALLOCATION_CANARY;
|
||||
alloc_hdr->smem_type = id;
|
||||
alloc_hdr->size = a_data_size;
|
||||
alloc_hdr->padding_data = a_data_size - size_in;
|
||||
alloc_hdr->padding_hdr = a_hdr_size - sizeof(*alloc_hdr);
|
||||
hdr->offset_free_cached = hdr->offset_free_cached -
|
||||
hdr->offset_free_cached = offset_free_cached -
|
||||
a_hdr_size - a_data_size;
|
||||
ret = (void *)(alloc_hdr) - a_data_size;
|
||||
/*
|
||||
@@ -637,20 +703,21 @@ static void *alloc_item_secure(unsigned id, unsigned size_in, unsigned to_proc,
|
||||
} else {
|
||||
a_hdr_size = sizeof(*alloc_hdr);
|
||||
a_data_size = ALIGN(size_in, 8);
|
||||
if (free_space < a_hdr_size + a_data_size) {
|
||||
if (free_space < a_hdr_size + a_data_size
|
||||
|| free_space < size_in) {
|
||||
SMEM_INFO(
|
||||
"%s: id %u not enough memory %u (required %u)\n",
|
||||
__func__, id, free_space,
|
||||
a_hdr_size + a_data_size);
|
||||
"%s: id %u not enough memory %u (required %u) (size_in %u)\n",
|
||||
__func__, id, free_space,
|
||||
a_hdr_size + a_data_size, size_in);
|
||||
return ret;
|
||||
}
|
||||
alloc_hdr = (void *)(hdr) + hdr->offset_free_uncached;
|
||||
alloc_hdr = (void *)(hdr) + offset_free_uncached;
|
||||
alloc_hdr->canary = SMEM_ALLOCATION_CANARY;
|
||||
alloc_hdr->smem_type = id;
|
||||
alloc_hdr->size = a_data_size;
|
||||
alloc_hdr->padding_data = a_data_size - size_in;
|
||||
alloc_hdr->padding_hdr = a_hdr_size - sizeof(*alloc_hdr);
|
||||
hdr->offset_free_uncached = hdr->offset_free_uncached +
|
||||
hdr->offset_free_uncached = offset_free_uncached +
|
||||
a_hdr_size + a_data_size;
|
||||
ret = alloc_hdr + 1;
|
||||
}
|
||||
@@ -864,6 +931,12 @@ unsigned smem_get_free_space(unsigned to_proc)
|
||||
{
|
||||
struct smem_partition_header *hdr;
|
||||
struct smem_shared *shared;
|
||||
uint32_t offset_free_uncached;
|
||||
struct smem_toc __iomem *toc;
|
||||
uint32_t offset_free_cached;
|
||||
uint32_t heap_remaining;
|
||||
uint32_t p_size;
|
||||
uint32_t p_num;
|
||||
|
||||
if (to_proc >= NUM_SMEM_SUBSYSTEMS) {
|
||||
pr_err("%s: invalid to_proc:%d\n", __func__, to_proc);
|
||||
@@ -878,11 +951,24 @@ unsigned smem_get_free_space(unsigned to_proc)
|
||||
return UINT_MAX;
|
||||
}
|
||||
hdr = smem_areas[0].virt_addr + partitions[to_proc].offset;
|
||||
return hdr->offset_free_cached - hdr->offset_free_uncached;
|
||||
} else {
|
||||
shared = (void *)MSM_SHARED_RAM_BASE;
|
||||
return shared->heap_info.heap_remaining;
|
||||
offset_free_cached = hdr->offset_free_cached;
|
||||
offset_free_uncached = hdr->offset_free_uncached;
|
||||
|
||||
toc = smem_get_toc();
|
||||
p_num = partitions[to_proc].partition_num;
|
||||
p_size = readl_relaxed(&toc->entry[p_num].size);
|
||||
if (WARN_ON(offset_free_uncached > offset_free_cached
|
||||
|| offset_free_cached > p_size))
|
||||
return -EINVAL;
|
||||
|
||||
return offset_free_cached - offset_free_uncached;
|
||||
}
|
||||
shared = (void *)MSM_SHARED_RAM_BASE;
|
||||
heap_remaining = shared->heap_info.heap_remaining;
|
||||
if (WARN_ON(heap_remaining > MSM_SHARED_RAM_SIZE))
|
||||
return -EINVAL;
|
||||
|
||||
return heap_remaining;
|
||||
}
|
||||
EXPORT_SYMBOL(smem_get_free_space);
|
||||
|
||||
@@ -1133,8 +1219,8 @@ static void smem_init_security_partition(struct smem_toc_entry *entry,
|
||||
LOG_ERR("Smem partition %d hdr magic is bad\n", num);
|
||||
BUG();
|
||||
}
|
||||
if (!hdr->size) {
|
||||
LOG_ERR("Smem partition %d size is 0\n", num);
|
||||
if (hdr->size != entry->size) {
|
||||
LOG_ERR("Smem partition %d size is invalid\n", num);
|
||||
BUG();
|
||||
}
|
||||
if (hdr->offset_free_uncached > hdr->size) {
|
||||
|
||||
@@ -487,7 +487,7 @@ SYSCALL_DEFINE6(sparc_ipc, unsigned int, call, int, first, unsigned long, second
|
||||
switch (call) {
|
||||
case SHMAT: {
|
||||
ulong raddr;
|
||||
err = do_shmat(first, ptr, (int)second, &raddr);
|
||||
err = do_shmat(first, ptr, (int)second, &raddr, SHMLBA);
|
||||
if (!err) {
|
||||
if (put_user(raddr,
|
||||
(ulong __user *) third))
|
||||
|
||||
@@ -44,7 +44,7 @@ asmlinkage long xtensa_shmat(int shmid, char __user *shmaddr, int shmflg)
|
||||
unsigned long ret;
|
||||
long err;
|
||||
|
||||
err = do_shmat(shmid, shmaddr, shmflg, &ret);
|
||||
err = do_shmat(shmid, shmaddr, shmflg, &ret, SHMLBA);
|
||||
if (err)
|
||||
return err;
|
||||
return (long)ret;
|
||||
|
||||
@@ -2072,8 +2072,13 @@ static int get_fuelgauge_soc(struct i2c_client *client)
|
||||
goto return_soc;
|
||||
}
|
||||
|
||||
#if defined(ANDROID_ALARM_ACTIVATED)
|
||||
current_time = alarm_get_elapsed_realtime();
|
||||
ts = ktime_to_timespec(current_time);
|
||||
#else
|
||||
current_time = ktime_get_boottime();
|
||||
ts = ktime_to_timespec(current_time);
|
||||
#endif
|
||||
|
||||
/* check fullcap range */
|
||||
fullcap_check_interval =
|
||||
@@ -2218,8 +2223,13 @@ bool sec_hal_fg_init(struct i2c_client *client)
|
||||
ktime_t current_time;
|
||||
struct timespec ts;
|
||||
|
||||
#if defined(ANDROID_ALARM_ACTIVATED)
|
||||
current_time = alarm_get_elapsed_realtime();
|
||||
ts = ktime_to_timespec(current_time);
|
||||
#else
|
||||
current_time = ktime_get_boottime();
|
||||
ts = ktime_to_timespec(current_time);
|
||||
#endif
|
||||
|
||||
board_fuelgauge_init(fuelgauge);
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
|
||||
static void * samsung_battery_data;
|
||||
|
||||
#define CAPACITY_MAX 1000
|
||||
#define CAPACITY_MAX 1000
|
||||
#define CAPACITY_MAX_MARGIN 50
|
||||
#define CAPACITY_MIN 0
|
||||
#define CAPACITY_MIN 0
|
||||
|
||||
static sec_bat_adc_table_data_t temp_table[] = {
|
||||
{26537, 800},
|
||||
@@ -54,16 +54,16 @@ static sec_bat_adc_table_data_t chg_temp_table[] = {
|
||||
{0, 0},
|
||||
};
|
||||
|
||||
#define TEMP_HIGH_THRESHOLD_EVENT 600
|
||||
#define TEMP_HIGH_RECOVERY_EVENT 470
|
||||
#define TEMP_HIGH_THRESHOLD_EVENT 580
|
||||
#define TEMP_HIGH_RECOVERY_EVENT 530
|
||||
#define TEMP_LOW_THRESHOLD_EVENT (-50)
|
||||
#define TEMP_LOW_RECOVERY_EVENT 0
|
||||
#define TEMP_HIGH_THRESHOLD_NORMAL 600
|
||||
#define TEMP_HIGH_RECOVERY_NORMAL 470
|
||||
#define TEMP_HIGH_THRESHOLD_NORMAL 580
|
||||
#define TEMP_HIGH_RECOVERY_NORMAL 530
|
||||
#define TEMP_LOW_THRESHOLD_NORMAL (-50)
|
||||
#define TEMP_LOW_RECOVERY_NORMAL 0
|
||||
#define TEMP_HIGH_THRESHOLD_LPM 600
|
||||
#define TEMP_HIGH_RECOVERY_LPM 470
|
||||
#define TEMP_HIGH_THRESHOLD_LPM 580
|
||||
#define TEMP_HIGH_RECOVERY_LPM 530
|
||||
#define TEMP_LOW_THRESHOLD_LPM (-50)
|
||||
#define TEMP_LOW_RECOVERY_LPM 0
|
||||
|
||||
|
||||
@@ -1925,8 +1925,8 @@ static void sec_bat_get_battery_info(
|
||||
{
|
||||
union power_supply_propval value;
|
||||
#if defined(CONFIG_MACH_VIENNAEUR) || defined(CONFIG_MACH_VIENNAVZW) || defined(CONFIG_MACH_VIENNAKOR) || defined(CONFIG_MACH_V2) || \
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || defined(CONFIG_SEC_DEGAS_PROJECT) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW)
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || defined(CONFIG_MACH_S3VE3G_EUR) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW) || defined(CONFIG_SEC_DEGAS_PROJECT)
|
||||
static struct timespec old_ts;
|
||||
struct timespec c_ts;
|
||||
|
||||
@@ -2029,8 +2029,8 @@ static void sec_bat_get_battery_info(
|
||||
sec_bat_check_changed_soc(battery, &value);
|
||||
|
||||
#if defined(CONFIG_MACH_VIENNAEUR) || defined(CONFIG_MACH_VIENNAVZW) || defined(CONFIG_MACH_VIENNAKOR) || defined(CONFIG_MACH_V2) || \
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || defined(CONFIG_SEC_DEGAS_PROJECT) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW)
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || defined(CONFIG_MACH_S3VE3G_EUR) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW) || defined(CONFIG_SEC_DEGAS_PROJECT)
|
||||
/* if the battery status was full, and SOC wasn't 100% yet,
|
||||
then ignore FG SOC, and report (previous SOC +1)% */
|
||||
if (battery->status != POWER_SUPPLY_STATUS_FULL) {
|
||||
@@ -2406,17 +2406,17 @@ continue_monitor:
|
||||
"%s: battery->stability_test(%d), battery->eng_not_full_status(%d)\n",
|
||||
__func__, battery->stability_test, battery->eng_not_full_status);
|
||||
#endif
|
||||
if (battery->store_mode && battery->cable_type != POWER_SUPPLY_TYPE_BATTERY) {
|
||||
if (battery->store_mode && !poweroff_charging && (battery->cable_type != POWER_SUPPLY_TYPE_BATTERY)) {
|
||||
|
||||
dev_info(battery->dev,
|
||||
"%s: @battery->capacity = (%d), battery->status= (%d), battery->store_mode=(%d)\n",
|
||||
__func__, battery->capacity, battery->status, battery->store_mode);
|
||||
|
||||
if ((battery->capacity >= 35) && (battery->status == POWER_SUPPLY_STATUS_CHARGING)) {
|
||||
if ((battery->capacity >= STORE_MODE_CHARGING_MAX) && (battery->status == POWER_SUPPLY_STATUS_CHARGING)) {
|
||||
battery->status = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||
sec_bat_set_charge(battery, false);
|
||||
}
|
||||
if ((battery->capacity <= 30) && (battery->status == POWER_SUPPLY_STATUS_DISCHARGING)) {
|
||||
if ((battery->capacity <= STORE_MODE_CHARGING_MIN) && (battery->status == POWER_SUPPLY_STATUS_DISCHARGING)) {
|
||||
battery->status = POWER_SUPPLY_STATUS_CHARGING;
|
||||
sec_bat_set_charge(battery, true);
|
||||
}
|
||||
@@ -3637,8 +3637,8 @@ static int sec_bat_get_property(struct power_supply *psy,
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MACH_VIENNAEUR) || defined(CONFIG_MACH_VIENNAVZW) || defined(CONFIG_MACH_VIENNAKOR) || defined(CONFIG_MACH_V2) || \
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW)|| defined(CONFIG_SEC_DEGAS_PROJECT)
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || defined(CONFIG_MACH_S3VE3G_EUR) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW) || defined(CONFIG_SEC_DEGAS_PROJECT)
|
||||
if (battery->status == POWER_SUPPLY_STATUS_FULL &&
|
||||
battery->capacity != 100) {
|
||||
val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||
@@ -3725,8 +3725,8 @@ static int sec_bat_get_property(struct power_supply *psy,
|
||||
}
|
||||
#else
|
||||
#if defined(CONFIG_MACH_VIENNAEUR) || defined(CONFIG_MACH_VIENNAVZW) || defined(CONFIG_MACH_VIENNAKOR) || defined(CONFIG_MACH_V2) || \
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW)|| defined(CONFIG_SEC_DEGAS_PROJECT)
|
||||
defined(CONFIG_SEC_MILLET_PROJECT) || defined(CONFIG_SEC_MATISSE_PROJECT) || defined(CONFIG_MACH_S3VE3G_EUR) || \
|
||||
defined(CONFIG_AFC_CHARGER_MODE) || defined(CONFIG_MACH_KLTE_USC) || defined(CONFIG_MACH_KLIMT_VZW) || defined(CONFIG_SEC_DEGAS_PROJECT)
|
||||
val->intval = battery->capacity;
|
||||
#else
|
||||
/* In full-charged status, SOC is always 100% */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
@@ -2201,6 +2201,7 @@ fail_alloc:
|
||||
kfree(new_entry->dci_log_mask);
|
||||
}
|
||||
kfree(new_entry);
|
||||
put_task_struct(current);
|
||||
mutex_unlock(&driver->dci_mutex);
|
||||
return DIAG_DCI_NO_REG;
|
||||
}
|
||||
|
||||
@@ -3903,6 +3903,8 @@ kgsl_mmap_memstore(struct kgsl_device *device, struct vm_area_struct *vma)
|
||||
if (vma->vm_flags & VM_WRITE)
|
||||
return -EPERM;
|
||||
|
||||
vma->vm_flags &= ~VM_MAYWRITE;
|
||||
|
||||
if (memdesc->size != vma_size) {
|
||||
KGSL_MEM_ERR(device, "memstore bad size: %d should be %d\n",
|
||||
vma_size, memdesc->size);
|
||||
|
||||
+13
-2
@@ -1170,6 +1170,17 @@ static void hid_output_field(const struct hid_device *hid,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Compute the size of a report.
|
||||
*/
|
||||
static size_t hid_compute_report_size(struct hid_report *report)
|
||||
{
|
||||
if (report->size)
|
||||
return ((report->size - 1) >> 3) + 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a report.
|
||||
*/
|
||||
@@ -1181,7 +1192,7 @@ void hid_output_report(struct hid_report *report, __u8 *data)
|
||||
if (report->id > 0)
|
||||
*data++ = report->id;
|
||||
|
||||
memset(data, 0, ((report->size - 1) >> 3) + 1);
|
||||
memset(data, 0, hid_compute_report_size(report));
|
||||
for (n = 0; n < report->maxfield; n++)
|
||||
hid_output_field(report->device, report->field[n], data);
|
||||
}
|
||||
@@ -1256,7 +1267,7 @@ int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
|
||||
csize--;
|
||||
}
|
||||
|
||||
rsize = ((report->size - 1) >> 3) + 1;
|
||||
rsize = hid_compute_report_size(report);
|
||||
|
||||
if (rsize > HID_MAX_BUFFER_SIZE)
|
||||
rsize = HID_MAX_BUFFER_SIZE;
|
||||
|
||||
@@ -883,6 +883,10 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
|
||||
}
|
||||
|
||||
mapped:
|
||||
/* Mapping failed, bail out */
|
||||
if (!bit)
|
||||
return;
|
||||
|
||||
if (device->driver->input_mapped && device->driver->input_mapped(device,
|
||||
hidinput, field, usage, &bit, &max) < 0)
|
||||
goto ignore;
|
||||
|
||||
@@ -442,6 +442,8 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||
case HID_UP_BUTTON:
|
||||
code = BTN_MOUSE + ((usage->hid - 1) & HID_USAGE);
|
||||
hid_map_usage(hi, usage, bit, max, EV_KEY, code);
|
||||
if (!*bit)
|
||||
return -1;
|
||||
input_set_capability(hi->input, EV_KEY, code);
|
||||
return 1;
|
||||
|
||||
|
||||
+16
-10
@@ -813,16 +813,18 @@ static int input_default_setkeycode(struct input_dev *dev,
|
||||
}
|
||||
}
|
||||
|
||||
__clear_bit(*old_keycode, dev->keybit);
|
||||
__set_bit(ke->keycode, dev->keybit);
|
||||
|
||||
for (i = 0; i < dev->keycodemax; i++) {
|
||||
if (input_fetch_keycode(dev, i) == *old_keycode) {
|
||||
__set_bit(*old_keycode, dev->keybit);
|
||||
break; /* Setting the bit twice is useless, so break */
|
||||
if (*old_keycode <= KEY_MAX) {
|
||||
__clear_bit(*old_keycode, dev->keybit);
|
||||
for (i = 0; i < dev->keycodemax; i++) {
|
||||
if (input_fetch_keycode(dev, i) == *old_keycode) {
|
||||
__set_bit(*old_keycode, dev->keybit);
|
||||
/* Setting the bit twice is useless, so break */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
__set_bit(ke->keycode, dev->keybit);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -878,9 +880,13 @@ int input_set_keycode(struct input_dev *dev,
|
||||
* Simulate keyup event if keycode is not present
|
||||
* in the keymap anymore
|
||||
*/
|
||||
if (test_bit(EV_KEY, dev->evbit) &&
|
||||
!is_event_supported(old_keycode, dev->keybit, KEY_MAX) &&
|
||||
__test_and_clear_bit(old_keycode, dev->key)) {
|
||||
if (old_keycode > KEY_MAX) {
|
||||
dev_warn(dev->dev.parent ?: &dev->dev,
|
||||
"%s: got too big old keycode %#x\n",
|
||||
__func__, old_keycode);
|
||||
} else if (test_bit(EV_KEY, dev->evbit) &&
|
||||
!is_event_supported(old_keycode, dev->keybit, KEY_MAX) &&
|
||||
__test_and_clear_bit(old_keycode, dev->key)) {
|
||||
|
||||
input_pass_event(dev, EV_KEY, old_keycode, 0);
|
||||
if (dev->sync)
|
||||
|
||||
@@ -235,7 +235,7 @@
|
||||
#endif
|
||||
|
||||
#define SAMSUNG_TKEY_LED_BRIGHTNESS 90
|
||||
#if defined(CONFIG_SEC_AFYON_PROJECT) || defined(CONFIG_SEC_ATLANTIC_PROJECT) || defined( CONFIG_SEC_VASTA_PROJECT) || defined(CONFIG_MACH_MEGA2LTE_KTT)
|
||||
#if defined(CONFIG_SEC_AFYON_PROJECT) || defined(CONFIG_SEC_ATLANTIC_PROJECT) || defined(CONFIG_MACH_S3VE3G_EUR) || defined(CONFIG_SEC_VASTA_PROJECT) || defined(CONFIG_MACH_MEGA2LTE_KTT)
|
||||
#define SAMSUNG_USE_EXTERNAL_CHARGER
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1346,6 +1346,11 @@ static int uvc_scan_chain_forward(struct uvc_video_chain *chain,
|
||||
break;
|
||||
if (forward == prev)
|
||||
continue;
|
||||
if (forward->chain.next || forward->chain.prev) {
|
||||
uvc_trace(UVC_TRACE_DESCR, "Found reference to "
|
||||
"entity %d already in chain.\n", forward->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (UVC_ENTITY_TYPE(forward)) {
|
||||
case UVC_VC_EXTENSION_UNIT:
|
||||
@@ -1427,6 +1432,13 @@ static int uvc_scan_chain_backward(struct uvc_video_chain *chain,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (term->chain.next || term->chain.prev) {
|
||||
uvc_trace(UVC_TRACE_DESCR, "Found reference to "
|
||||
"entity %d already in chain.\n",
|
||||
term->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (uvc_trace_param & UVC_TRACE_PROBE)
|
||||
printk(" %d", term->id);
|
||||
|
||||
|
||||
@@ -1639,7 +1639,7 @@ qpnp_chg_set_appropriate_vddmax(struct qpnp_chg_chip *chip)
|
||||
chip->delta_vddmax_mv);
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_SEC_ATLANTIC_PROJECT)
|
||||
#if !defined(CONFIG_SEC_ATLANTIC_PROJECT) && !defined(CONFIG_MACH_S3VE3G_EUR)
|
||||
#define MIN_DELTA_MV_TO_INCREASE_VDD_MAX 8
|
||||
#define MAX_DELTA_VDD_MAX_MV 80
|
||||
#define VDD_MAX_CENTER_OFFSET 4
|
||||
@@ -4669,7 +4669,7 @@ qpnp_chg_setup_flags(struct qpnp_chg_chip *chip)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_SEC_ATLANTIC_PROJECT)
|
||||
#if !defined(CONFIG_SEC_ATLANTIC_PROJECT) && !defined(CONFIG_MACH_S3VE3G_EUR)
|
||||
static void
|
||||
sec_qpnp_chg_check_vddmax(struct qpnp_chg_chip *chip)
|
||||
{
|
||||
@@ -5612,7 +5612,7 @@ sec_qpnp_chg_get_property(struct power_supply *psy,
|
||||
val->intval = POWER_SUPPLY_HEALTH_GOOD;
|
||||
break;
|
||||
case POWER_SUPPLY_PROP_CURRENT_MAX:
|
||||
#if !defined(CONFIG_SEC_ATLANTIC_PROJECT)
|
||||
#if !defined(CONFIG_SEC_ATLANTIC_PROJECT) && !defined(CONFIG_MACH_S3VE3G_EUR)
|
||||
sec_qpnp_chg_check_vddmax(chip);
|
||||
#endif
|
||||
val->intval = charger->charging_current_max;
|
||||
|
||||
@@ -2459,10 +2459,10 @@ static int tiocspgrp(struct tty_struct *tty, struct tty_struct *real_tty, pid_t
|
||||
if (session_of_pgrp(pgrp) != task_session(current))
|
||||
goto out_unlock;
|
||||
retval = 0;
|
||||
spin_lock_irqsave(&tty->ctrl_lock, flags);
|
||||
spin_lock_irqsave(&real_tty->ctrl_lock, flags);
|
||||
put_pid(real_tty->pgrp);
|
||||
real_tty->pgrp = get_pid(pgrp);
|
||||
spin_unlock_irqrestore(&tty->ctrl_lock, flags);
|
||||
spin_unlock_irqrestore(&real_tty->ctrl_lock, flags);
|
||||
out_unlock:
|
||||
rcu_read_unlock();
|
||||
return retval;
|
||||
|
||||
+1
-1
@@ -1463,7 +1463,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,
|
||||
(!regset->active || regset->active(t->task, regset))) {
|
||||
int ret;
|
||||
size_t size = regset->n * regset->size;
|
||||
void *data = kmalloc(size, GFP_KERNEL);
|
||||
void *data = kzalloc(size, GFP_KERNEL);
|
||||
if (unlikely(!data))
|
||||
return 0;
|
||||
ret = regset->get(t->task, regset,
|
||||
|
||||
+7
-5
@@ -1133,10 +1133,8 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
||||
*/
|
||||
if (!for_part) {
|
||||
ret = devcgroup_inode_permission(bdev->bd_inode, perm);
|
||||
if (ret != 0) {
|
||||
bdput(bdev);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
restart:
|
||||
@@ -1211,8 +1209,10 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
||||
goto out_clear;
|
||||
BUG_ON(for_part);
|
||||
ret = __blkdev_get(whole, mode, 1);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
bdput(whole);
|
||||
goto out_clear;
|
||||
}
|
||||
bdev->bd_contains = whole;
|
||||
bdev_inode_switch_bdi(bdev->bd_inode,
|
||||
whole->bd_inode->i_data.backing_dev_info);
|
||||
@@ -1265,7 +1265,6 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
|
||||
put_disk(disk);
|
||||
module_put(owner);
|
||||
out:
|
||||
bdput(bdev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -1351,6 +1350,9 @@ int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder)
|
||||
bdput(whole);
|
||||
}
|
||||
|
||||
if (res)
|
||||
bdput(bdev);
|
||||
|
||||
return res;
|
||||
}
|
||||
EXPORT_SYMBOL(blkdev_get);
|
||||
|
||||
+9
-4
@@ -1591,9 +1591,11 @@ static int ep_loop_check_proc(void *priv, void *cookie, int call_nests)
|
||||
* not already there, and calling reverse_path_check()
|
||||
* during ep_insert().
|
||||
*/
|
||||
if (list_empty(&epi->ffd.file->f_tfile_llink))
|
||||
list_add(&epi->ffd.file->f_tfile_llink,
|
||||
&tfile_check_list);
|
||||
if (list_empty(&epi->ffd.file->f_tfile_llink)) {
|
||||
if (get_file_rcu(epi->ffd.file))
|
||||
list_add(&epi->ffd.file->f_tfile_llink,
|
||||
&tfile_check_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
mutex_unlock(&ep->mtx);
|
||||
@@ -1637,6 +1639,7 @@ static void clear_tfile_check_list(void)
|
||||
file = list_first_entry(&tfile_check_list, struct file,
|
||||
f_tfile_llink);
|
||||
list_del_init(&file->f_tfile_llink);
|
||||
fput(file);
|
||||
}
|
||||
INIT_LIST_HEAD(&tfile_check_list);
|
||||
}
|
||||
@@ -1773,8 +1776,10 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
|
||||
clear_tfile_check_list();
|
||||
goto error_tgt_fput;
|
||||
}
|
||||
} else
|
||||
} else {
|
||||
get_file(tfile);
|
||||
list_add(&tfile->f_tfile_llink, &tfile_check_list);
|
||||
}
|
||||
}
|
||||
|
||||
mutex_lock_nested(&ep->mtx, 0);
|
||||
|
||||
+6
-3
@@ -69,15 +69,18 @@ config SDFAT_CHECK_RO_ATTR
|
||||
|
||||
config SDFAT_ALIGNED_MPAGE_WRITE
|
||||
bool "Enable supporting aligned mpage_write"
|
||||
default y
|
||||
default y if SDFAT_FS=y
|
||||
default n if SDFAT_FS=m
|
||||
depends on SDFAT_FS
|
||||
|
||||
config SDFAT_VIRTUAL_XATTR
|
||||
bool "Virtual xattr support for sdFAT"
|
||||
default y
|
||||
default n
|
||||
depends on SDFAT_FS
|
||||
help
|
||||
To support virtual xattr.
|
||||
If you enable this feature, it supports virtual xattr.
|
||||
This feature will be deprecated because it might be the same with
|
||||
"context" mount option.
|
||||
|
||||
config SDFAT_VIRTUAL_XATTR_SELINUX_LABEL
|
||||
string "Default string for SELinux label"
|
||||
|
||||
@@ -708,7 +708,8 @@ static inline AU_INFO_T *amap_get_packing_au(AMAP_T *amap, int dest, int num_to_
|
||||
}
|
||||
}
|
||||
|
||||
if ((PACKING_HARDLIMIT) && amap->n_need_packing >= PACKING_HARDLIMIT) {
|
||||
if ((PACKING_HARDLIMIT != 0) &&
|
||||
amap->n_need_packing >= PACKING_HARDLIMIT) {
|
||||
/* Compulsory SLC flushing:
|
||||
* If there was no chance to do best-fit packing
|
||||
* and the # of AU-aligned allocation exceeds HARD threshold,
|
||||
|
||||
+22
-8
@@ -96,7 +96,6 @@ s32 bdev_check_bdi_valid(struct super_block *sb)
|
||||
fsi->prev_eio |= SDFAT_EIO_BDI;
|
||||
sdfat_log_msg(sb, KERN_ERR, "%s: block device is "
|
||||
"eliminated.(bdi:%p)", __func__, sb->s_bdi);
|
||||
sdfat_debug_warn_on(1);
|
||||
}
|
||||
return -ENXIO;
|
||||
}
|
||||
@@ -104,18 +103,13 @@ s32 bdev_check_bdi_valid(struct super_block *sb)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Make a readahead request */
|
||||
s32 bdev_readahead(struct super_block *sb, u64 secno, u64 num_secs)
|
||||
#if IS_BUILTIN(CONFIG_SDFAT_FS)
|
||||
static void __bdev_readahead(struct super_block *sb, u64 secno, u64 num_secs)
|
||||
{
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
u32 sects_per_page = (PAGE_SIZE >> sb->s_blocksize_bits);
|
||||
struct blk_plug plug;
|
||||
u64 i;
|
||||
|
||||
if (!fsi->bd_opened)
|
||||
return -EIO;
|
||||
|
||||
blk_start_plug(&plug);
|
||||
for (i = 0; i < num_secs; i++) {
|
||||
if (i && !(i & (sects_per_page - 1)))
|
||||
@@ -123,6 +117,26 @@ s32 bdev_readahead(struct super_block *sb, u64 secno, u64 num_secs)
|
||||
sb_breadahead(sb, (sector_t)(secno + i));
|
||||
}
|
||||
blk_finish_plug(&plug);
|
||||
}
|
||||
#else
|
||||
static void __bdev_readahead(struct super_block *sb, u64 secno, u64 num_secs)
|
||||
{
|
||||
u64 i;
|
||||
|
||||
for (i = 0; i < num_secs; i++)
|
||||
sb_breadahead(sb, (sector_t)(secno + i));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make a readahead request */
|
||||
s32 bdev_readahead(struct super_block *sb, u64 secno, u64 num_secs)
|
||||
{
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
|
||||
if (!fsi->bd_opened)
|
||||
return -EIO;
|
||||
|
||||
__bdev_readahead(sb, secno, num_secs);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
+17
-22
@@ -158,7 +158,7 @@ static s32 __fs_set_vol_flags(struct super_block *sb, u16 new_flag, s32 always_s
|
||||
/* skip updating volume dirty flag,
|
||||
* if this volume has been mounted with read-only
|
||||
*/
|
||||
if (sb->s_flags & MS_RDONLY)
|
||||
if (sb_rdonly(sb))
|
||||
return 0;
|
||||
|
||||
if (!fsi->pbr_bh) {
|
||||
@@ -177,7 +177,8 @@ static s32 __fs_set_vol_flags(struct super_block *sb, u16 new_flag, s32 always_s
|
||||
bpb->bsx.state = new_flag & VOL_DIRTY ? FAT_VOL_DIRTY : 0x00;
|
||||
} else { /* FAT16/12 */
|
||||
pbr16_t *bpb = (pbr16_t *) fsi->pbr_bh->b_data;
|
||||
bpb->bpb.state = new_flag & VOL_DIRTY ? FAT_VOL_DIRTY : 0x00;
|
||||
bpb->bpb.f16.state = new_flag & VOL_DIRTY ?
|
||||
FAT_VOL_DIRTY : 0x00;
|
||||
}
|
||||
|
||||
if (always_sync)
|
||||
@@ -1655,7 +1656,7 @@ static bool is_exfat(pbr_t *pbr)
|
||||
|
||||
static bool is_fat32(pbr_t *pbr)
|
||||
{
|
||||
if (le16_to_cpu(pbr->bpb.f16.num_fat_sectors))
|
||||
if (le16_to_cpu(pbr->bpb.fat.num_fat_sectors))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@@ -1668,7 +1669,7 @@ inline pbr_t *read_pbr_with_logical_sector(struct super_block *sb, struct buffer
|
||||
if (is_exfat(p_pbr))
|
||||
logical_sect = 1 << p_pbr->bsx.f64.sect_size_bits;
|
||||
else
|
||||
logical_sect = get_unaligned_le16(&p_pbr->bpb.f16.sect_size);
|
||||
logical_sect = get_unaligned_le16(&p_pbr->bpb.fat.sect_size);
|
||||
|
||||
/* is x a power of 2?
|
||||
* (x) != 0 && (((x) & ((x) - 1)) == 0)
|
||||
@@ -1780,18 +1781,6 @@ s32 fscore_mount(struct super_block *sb)
|
||||
opts->improved_allocation = 0;
|
||||
opts->defrag = 0;
|
||||
ret = mount_exfat(sb, p_pbr);
|
||||
} else if (is_fat32(p_pbr)) {
|
||||
if (opts->fs_type && opts->fs_type != FS_TYPE_VFAT) {
|
||||
sdfat_log_msg(sb, KERN_ERR,
|
||||
"not specified filesystem type "
|
||||
"(media:vfat, opts:%s)",
|
||||
FS_TYPE_STR[opts->fs_type]);
|
||||
ret = -EINVAL;
|
||||
goto free_bh;
|
||||
}
|
||||
/* set maximum file size for FAT */
|
||||
sb->s_maxbytes = 0xffffffff;
|
||||
ret = mount_fat32(sb, p_pbr);
|
||||
} else {
|
||||
if (opts->fs_type && opts->fs_type != FS_TYPE_VFAT) {
|
||||
sdfat_log_msg(sb, KERN_ERR,
|
||||
@@ -1803,9 +1792,14 @@ s32 fscore_mount(struct super_block *sb)
|
||||
}
|
||||
/* set maximum file size for FAT */
|
||||
sb->s_maxbytes = 0xffffffff;
|
||||
opts->improved_allocation = 0;
|
||||
opts->defrag = 0;
|
||||
ret = mount_fat16(sb, p_pbr);
|
||||
|
||||
if (is_fat32(p_pbr)) {
|
||||
ret = mount_fat32(sb, p_pbr);
|
||||
} else {
|
||||
opts->improved_allocation = 0;
|
||||
opts->defrag = 0;
|
||||
ret = mount_fat16(sb, p_pbr);
|
||||
}
|
||||
}
|
||||
free_bh:
|
||||
brelse(tmp_bh);
|
||||
@@ -1817,8 +1811,9 @@ free_bh:
|
||||
/* warn misaligned data data start sector must be a multiple of clu_size */
|
||||
sdfat_log_msg(sb, KERN_INFO,
|
||||
"detected volume info : %s "
|
||||
"(bps : %lu, spc : %u, data start : %llu, %s)",
|
||||
"(%04hX-%04hX, bps : %lu, spc : %u, data start : %llu, %s)",
|
||||
sdfat_get_vol_type_str(fsi->vol_type),
|
||||
(fsi->vol_id >> 16) & 0xffff, fsi->vol_id & 0xffff,
|
||||
sb->s_blocksize, fsi->sect_per_clus, fsi->data_start_sector,
|
||||
(fsi->data_start_sector & (fsi->sect_per_clus - 1)) ?
|
||||
"misaligned" : "aligned");
|
||||
@@ -2374,7 +2369,7 @@ s32 fscore_write_link(struct inode *inode, FILE_ID_T *fid, void *buffer, u64 cou
|
||||
ep2 = ep;
|
||||
}
|
||||
|
||||
fsi->fs_func->set_entry_time(ep, tm_now(SDFAT_SB(sb), &tm), TM_MODIFY);
|
||||
fsi->fs_func->set_entry_time(ep, tm_now(inode, &tm), TM_MODIFY);
|
||||
fsi->fs_func->set_entry_attr(ep, fid->attr);
|
||||
|
||||
if (modified) {
|
||||
@@ -2581,7 +2576,7 @@ s32 fscore_truncate(struct inode *inode, u64 old_size, u64 new_size)
|
||||
ep2 = ep;
|
||||
}
|
||||
|
||||
fsi->fs_func->set_entry_time(ep, tm_now(SDFAT_SB(sb), &tm), TM_MODIFY);
|
||||
fsi->fs_func->set_entry_time(ep, tm_now(inode, &tm), TM_MODIFY);
|
||||
fsi->fs_func->set_entry_attr(ep, fid->attr);
|
||||
|
||||
/*
|
||||
|
||||
+9
-1
@@ -60,7 +60,15 @@ typedef struct {
|
||||
void *__buf; // __buf should be the last member
|
||||
} ENTRY_SET_CACHE_T;
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* Inline Functions */
|
||||
/*----------------------------------------------------------------------*/
|
||||
static inline bool is_valid_clus(FS_INFO_T *fsi, u32 clus)
|
||||
{
|
||||
if (clus < CLUS_BASE || fsi->num_clusters <= clus)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
/* External Function Declarations */
|
||||
|
||||
+43
-22
@@ -220,20 +220,27 @@ static void exfat_set_entry_size(DENTRY_T *p_entry, u64 size)
|
||||
ep->size = cpu_to_le64(size);
|
||||
} /* end of exfat_set_entry_size */
|
||||
|
||||
|
||||
#define TENS_MS_PER_SEC (100)
|
||||
#define SEC_TO_TENS_MS(sec) (((sec) & 0x01) ? TENS_MS_PER_SEC : 0)
|
||||
#define TENS_MS_TO_SEC(tens_ms) (((tens_ms) / TENS_MS_PER_SEC) ? 1 : 0)
|
||||
|
||||
static void exfat_get_entry_time(DENTRY_T *p_entry, TIMESTAMP_T *tp, u8 mode)
|
||||
{
|
||||
u16 t = 0x00, d = 0x21, tz = 0x00;
|
||||
u16 t = 0x00, d = 0x21, tz = 0x00, s = 0x00;
|
||||
FILE_DENTRY_T *ep = (FILE_DENTRY_T *)p_entry;
|
||||
|
||||
switch (mode) {
|
||||
case TM_CREATE:
|
||||
t = le16_to_cpu(ep->create_time);
|
||||
d = le16_to_cpu(ep->create_date);
|
||||
s = TENS_MS_TO_SEC(ep->create_time_ms);
|
||||
tz = ep->create_tz;
|
||||
break;
|
||||
case TM_MODIFY:
|
||||
t = le16_to_cpu(ep->modify_time);
|
||||
d = le16_to_cpu(ep->modify_date);
|
||||
s = TENS_MS_TO_SEC(ep->modify_time_ms);
|
||||
tz = ep->modify_tz;
|
||||
break;
|
||||
case TM_ACCESS:
|
||||
@@ -244,7 +251,7 @@ static void exfat_get_entry_time(DENTRY_T *p_entry, TIMESTAMP_T *tp, u8 mode)
|
||||
}
|
||||
|
||||
tp->tz.value = tz;
|
||||
tp->sec = (t & 0x001F) << 1;
|
||||
tp->sec = ((t & 0x001F) << 1) + s;
|
||||
tp->min = (t >> 5) & 0x003F;
|
||||
tp->hour = (t >> 11);
|
||||
tp->day = (d & 0x001F);
|
||||
@@ -263,12 +270,14 @@ static void exfat_set_entry_time(DENTRY_T *p_entry, TIMESTAMP_T *tp, u8 mode)
|
||||
switch (mode) {
|
||||
case TM_CREATE:
|
||||
ep->create_time = cpu_to_le16(t);
|
||||
ep->create_time_ms = SEC_TO_TENS_MS(tp->sec);
|
||||
ep->create_date = cpu_to_le16(d);
|
||||
ep->create_tz = tp->tz.value;
|
||||
break;
|
||||
case TM_MODIFY:
|
||||
ep->modify_time = cpu_to_le16(t);
|
||||
ep->modify_date = cpu_to_le16(d);
|
||||
ep->modify_time_ms = (tp->sec & 0x1) ? TENS_MS_PER_SEC : 0;
|
||||
ep->modify_tz = tp->tz.value;
|
||||
break;
|
||||
case TM_ACCESS:
|
||||
@@ -286,12 +295,10 @@ static void __init_file_entry(struct super_block *sb, FILE_DENTRY_T *ep, u32 typ
|
||||
|
||||
exfat_set_entry_type((DENTRY_T *) ep, type);
|
||||
|
||||
tp = tm_now(SDFAT_SB(sb), &tm);
|
||||
tp = tm_now_sb(sb, &tm);
|
||||
exfat_set_entry_time((DENTRY_T *) ep, tp, TM_CREATE);
|
||||
exfat_set_entry_time((DENTRY_T *) ep, tp, TM_MODIFY);
|
||||
exfat_set_entry_time((DENTRY_T *) ep, tp, TM_ACCESS);
|
||||
ep->create_time_ms = 0;
|
||||
ep->modify_time_ms = 0;
|
||||
} /* end of __init_file_entry */
|
||||
|
||||
static void __init_strm_entry(STRM_DENTRY_T *ep, u8 flags, u32 start_clu, u64 size)
|
||||
@@ -1279,7 +1286,7 @@ static s32 exfat_free_cluster(struct super_block *sb, CHAIN_T *p_chain, s32 do_r
|
||||
}
|
||||
|
||||
/* check cluster validation */
|
||||
if ((p_chain->dir < 2) && (p_chain->dir >= fsi->num_clusters)) {
|
||||
if (!is_valid_clus(fsi, p_chain->dir)) {
|
||||
EMSG("%s: invalid start cluster (%u)\n", __func__, p_chain->dir);
|
||||
sdfat_debug_bug_on(1);
|
||||
return -EIO;
|
||||
@@ -1367,9 +1374,13 @@ static s32 exfat_alloc_cluster(struct super_block *sb, u32 num_alloc, CHAIN_T *p
|
||||
}
|
||||
|
||||
/* check cluster validation */
|
||||
if ((hint_clu < CLUS_BASE) && (hint_clu >= fsi->num_clusters)) {
|
||||
EMSG("%s: hint_cluster is invalid (%u)\n", __func__, hint_clu);
|
||||
ASSERT(0);
|
||||
if (!is_valid_clus(fsi, hint_clu)) {
|
||||
/* "last + 1" can be passed as hint_clu. Otherwise, bug_on */
|
||||
if (hint_clu != fsi->num_clusters) {
|
||||
EMSG("%s: hint_cluster is invalid (%u)\n",
|
||||
__func__, hint_clu);
|
||||
sdfat_debug_bug_on(1);
|
||||
}
|
||||
hint_clu = CLUS_BASE;
|
||||
if (p_chain->flags == 0x03) {
|
||||
if (exfat_chain_cont_cluster(sb, p_chain->dir, num_clusters))
|
||||
@@ -1508,43 +1519,53 @@ s32 mount_exfat(struct super_block *sb, pbr_t *p_pbr)
|
||||
pbr64_t *p_bpb = (pbr64_t *)p_pbr;
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
|
||||
if (!p_bpb->bsx.num_fats) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus number of FAT structure");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->sect_per_clus = 1 << p_bpb->bsx.sect_per_clus_bits;
|
||||
fsi->sect_per_clus_bits = p_bpb->bsx.sect_per_clus_bits;
|
||||
fsi->cluster_size_bits = fsi->sect_per_clus_bits + sb->s_blocksize_bits;
|
||||
fsi->cluster_size = 1 << fsi->cluster_size_bits;
|
||||
|
||||
if (!p_bpb->bsx.num_fats) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus number of FAT structure");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (p_bpb->bsx.num_fats >= 2) {
|
||||
sdfat_msg(sb, KERN_WARNING,
|
||||
"unsupported number of FAT structure :%u, try with 1",
|
||||
p_bpb->bsx.num_fats);
|
||||
}
|
||||
|
||||
fsi->num_FAT_sectors = le32_to_cpu(p_bpb->bsx.fat_length);
|
||||
if (!fsi->num_FAT_sectors) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus fat size");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->FAT1_start_sector = le32_to_cpu(p_bpb->bsx.fat_offset);
|
||||
if (p_bpb->bsx.num_fats == 1)
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector;
|
||||
else
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector + fsi->num_FAT_sectors;
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector;
|
||||
|
||||
fsi->root_start_sector = le32_to_cpu(p_bpb->bsx.clu_offset);
|
||||
fsi->data_start_sector = fsi->root_start_sector;
|
||||
|
||||
fsi->num_sectors = le64_to_cpu(p_bpb->bsx.vol_length);
|
||||
fsi->num_clusters = le32_to_cpu(p_bpb->bsx.clu_count) + 2;
|
||||
if (!fsi->num_sectors) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus number of total sector count");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* because the cluster index starts with 2 */
|
||||
fsi->num_clusters = le32_to_cpu(p_bpb->bsx.clu_count) + CLUS_BASE;
|
||||
|
||||
fsi->vol_type = EXFAT;
|
||||
fsi->vol_id = le32_to_cpu(p_bpb->bsx.vol_serial);
|
||||
|
||||
fsi->root_dir = le32_to_cpu(p_bpb->bsx.root_cluster);
|
||||
fsi->dentries_in_root = 0;
|
||||
fsi->dentries_per_clu = 1 << (fsi->cluster_size_bits - DENTRY_SIZE_BITS);
|
||||
|
||||
fsi->vol_flag = (u32) le16_to_cpu(p_bpb->bsx.vol_flags);
|
||||
fsi->clu_srch_ptr = CLUS_BASE;
|
||||
fsi->used_clusters = (u32) ~0;
|
||||
|
||||
fsi->fs_func = &exfat_fs_func;
|
||||
fsi->vol_type = EXFAT;
|
||||
fat_ent_ops_init(sb);
|
||||
|
||||
if (p_bpb->bsx.vol_flags & VOL_DIRTY) {
|
||||
|
||||
+75
-75
@@ -176,7 +176,7 @@ static s32 fat_free_cluster(struct super_block *sb, CHAIN_T *p_chain, s32 do_rel
|
||||
}
|
||||
|
||||
/* check cluster validation */
|
||||
if ((p_chain->dir < 2) && (p_chain->dir >= fsi->num_clusters)) {
|
||||
if (!is_valid_clus(fsi, p_chain->dir)) {
|
||||
EMSG("%s: invalid start cluster (%u)\n", __func__, p_chain->dir);
|
||||
sdfat_debug_bug_on(1);
|
||||
return -EIO;
|
||||
@@ -479,7 +479,7 @@ static void __init_dos_entry(struct super_block *sb, DOS_DENTRY_T *ep, u32 type,
|
||||
ep->start_clu_hi = cpu_to_le16(CLUSTER_16(start_clu >> 16));
|
||||
ep->size = 0;
|
||||
|
||||
tp = tm_now(SDFAT_SB(sb), &tm);
|
||||
tp = tm_now_sb(sb, &tm);
|
||||
fat_set_entry_time((DENTRY_T *) ep, tp, TM_CREATE);
|
||||
fat_set_entry_time((DENTRY_T *) ep, tp, TM_MODIFY);
|
||||
ep->access_date = 0;
|
||||
@@ -1238,36 +1238,70 @@ static FS_FUNC_T amap_fat_fs_func = {
|
||||
.get_au_stat = amap_get_au_stat,
|
||||
};
|
||||
|
||||
s32 mount_fat16(struct super_block *sb, pbr_t *p_pbr)
|
||||
static s32 mount_fat_common(struct super_block *sb, FS_INFO_T *fsi,
|
||||
bpb_t *p_bpb, u32 root_sects)
|
||||
{
|
||||
s32 num_root_sectors;
|
||||
bpb16_t *p_bpb = &(p_pbr->bpb.f16);
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
bool fat32 = root_sects == 0 ? true : false;
|
||||
|
||||
fsi->sect_per_clus = p_bpb->sect_per_clus;
|
||||
if (!is_power_of_2(fsi->sect_per_clus)) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus sectors per cluster %u",
|
||||
fsi->sect_per_clus);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->sect_per_clus_bits = ilog2(p_bpb->sect_per_clus);
|
||||
fsi->cluster_size_bits = fsi->sect_per_clus_bits + sb->s_blocksize_bits;
|
||||
fsi->cluster_size = 1 << fsi->cluster_size_bits;
|
||||
fsi->dentries_per_clu = 1 <<
|
||||
(fsi->cluster_size_bits - DENTRY_SIZE_BITS);
|
||||
|
||||
fsi->vol_flag = VOL_CLEAN;
|
||||
fsi->clu_srch_ptr = CLUS_BASE;
|
||||
fsi->used_clusters = (u32)~0;
|
||||
fsi->fs_func = &fat_fs_func;
|
||||
|
||||
fsi->num_FAT_sectors = le16_to_cpu(p_bpb->num_fat_sectors);
|
||||
if (fat32) {
|
||||
u32 fat32_len = le32_to_cpu(p_bpb->f32.num_fat32_sectors);
|
||||
|
||||
if (fat32_len) {
|
||||
fsi->num_FAT_sectors = fat32_len;
|
||||
} else if (fsi->num_FAT_sectors) {
|
||||
/* SPEC violation for compatibility */
|
||||
sdfat_msg(sb, KERN_WARNING,
|
||||
"no fatsz32, try with fatsz16: %u",
|
||||
fsi->num_FAT_sectors);
|
||||
}
|
||||
}
|
||||
|
||||
if (!fsi->num_FAT_sectors) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus fat size");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!p_bpb->num_fats) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus number of FAT structure");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
num_root_sectors = get_unaligned_le16(p_bpb->num_root_entries) << DENTRY_SIZE_BITS;
|
||||
num_root_sectors = ((num_root_sectors-1) >> sb->s_blocksize_bits) + 1;
|
||||
|
||||
fsi->sect_per_clus = p_bpb->sect_per_clus;
|
||||
fsi->sect_per_clus_bits = ilog2(p_bpb->sect_per_clus);
|
||||
fsi->cluster_size_bits = fsi->sect_per_clus_bits + sb->s_blocksize_bits;
|
||||
fsi->cluster_size = 1 << fsi->cluster_size_bits;
|
||||
|
||||
fsi->num_FAT_sectors = le16_to_cpu(p_bpb->num_fat_sectors);
|
||||
if (p_bpb->num_fats > 2) {
|
||||
sdfat_msg(sb, KERN_WARNING,
|
||||
"unsupported number of FAT structure :%u, try with 2",
|
||||
p_bpb->num_fats);
|
||||
}
|
||||
|
||||
fsi->FAT1_start_sector = le16_to_cpu(p_bpb->num_reserved);
|
||||
if (p_bpb->num_fats == 1)
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector;
|
||||
else
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector + fsi->num_FAT_sectors;
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector +
|
||||
fsi->num_FAT_sectors;
|
||||
|
||||
fsi->root_start_sector = fsi->FAT2_start_sector + fsi->num_FAT_sectors;
|
||||
fsi->data_start_sector = fsi->root_start_sector + num_root_sectors;
|
||||
fsi->data_start_sector = fsi->root_start_sector + root_sects;
|
||||
|
||||
/* SPEC violation for compatibility */
|
||||
fsi->num_sectors = get_unaligned_le16(p_bpb->num_sectors);
|
||||
if (!fsi->num_sectors)
|
||||
fsi->num_sectors = le32_to_cpu(p_bpb->num_huge_sectors);
|
||||
@@ -1277,15 +1311,20 @@ s32 mount_fat16(struct super_block *sb, pbr_t *p_pbr)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->num_clusters = (u32)((fsi->num_sectors - fsi->data_start_sector) >> fsi->sect_per_clus_bits) + CLUS_BASE;
|
||||
/* because the cluster index starts with 2 */
|
||||
fsi->num_clusters = (u32)((fsi->num_sectors - fsi->data_start_sector) >>
|
||||
fsi->sect_per_clus_bits) + CLUS_BASE;
|
||||
|
||||
fsi->vol_type = FAT16;
|
||||
if (fsi->num_clusters < FAT12_THRESHOLD)
|
||||
fsi->vol_type = FAT12;
|
||||
return 0;
|
||||
}
|
||||
|
||||
fsi->vol_id = get_unaligned_le32(p_bpb->vol_serial);
|
||||
s32 mount_fat16(struct super_block *sb, pbr_t *p_pbr)
|
||||
{
|
||||
u32 num_root_sectors;
|
||||
bpb_t *p_bpb = &(p_pbr->bpb.fat);
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
|
||||
fsi->vol_id = get_unaligned_le32(p_bpb->f16.vol_serial);
|
||||
fsi->root_dir = 0;
|
||||
fsi->dentries_in_root = get_unaligned_le16(p_bpb->num_root_entries);
|
||||
if (!fsi->dentries_in_root) {
|
||||
@@ -1294,16 +1333,18 @@ s32 mount_fat16(struct super_block *sb, pbr_t *p_pbr)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->dentries_per_clu = 1 << (fsi->cluster_size_bits - DENTRY_SIZE_BITS);
|
||||
num_root_sectors = fsi->dentries_in_root << DENTRY_SIZE_BITS;
|
||||
num_root_sectors = ((num_root_sectors - 1) >> sb->s_blocksize_bits) + 1;
|
||||
|
||||
fsi->vol_flag = VOL_CLEAN;
|
||||
fsi->clu_srch_ptr = 2;
|
||||
fsi->used_clusters = (u32) ~0;
|
||||
if (mount_fat_common(sb, fsi, p_bpb, num_root_sectors))
|
||||
return -EINVAL;
|
||||
|
||||
fsi->fs_func = &fat_fs_func;
|
||||
fsi->vol_type = FAT16;
|
||||
if (fsi->num_clusters < FAT12_THRESHOLD)
|
||||
fsi->vol_type = FAT12;
|
||||
fat_ent_ops_init(sb);
|
||||
|
||||
if (p_bpb->state & FAT_VOL_DIRTY) {
|
||||
if (p_bpb->f16.state & FAT_VOL_DIRTY) {
|
||||
fsi->vol_flag |= VOL_DIRTY;
|
||||
sdfat_log_msg(sb, KERN_WARNING, "Volume was not properly "
|
||||
"unmounted. Some data may be corrupt. "
|
||||
@@ -1347,67 +1388,26 @@ s32 mount_fat32(struct super_block *sb, pbr_t *p_pbr)
|
||||
pbr32_t *p_bpb = (pbr32_t *)p_pbr;
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
|
||||
if (!p_bpb->bpb.num_fats) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus number of FAT structure");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->sect_per_clus = p_bpb->bpb.sect_per_clus;
|
||||
fsi->sect_per_clus_bits = ilog2(p_bpb->bpb.sect_per_clus);
|
||||
fsi->cluster_size_bits = fsi->sect_per_clus_bits + sb->s_blocksize_bits;
|
||||
fsi->cluster_size = 1 << fsi->cluster_size_bits;
|
||||
|
||||
fsi->num_FAT_sectors = le32_to_cpu(p_bpb->bpb.num_fat32_sectors);
|
||||
|
||||
fsi->FAT1_start_sector = le16_to_cpu(p_bpb->bpb.num_reserved);
|
||||
if (p_bpb->bpb.num_fats == 1)
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector;
|
||||
else
|
||||
fsi->FAT2_start_sector = fsi->FAT1_start_sector + fsi->num_FAT_sectors;
|
||||
|
||||
fsi->root_start_sector = fsi->FAT2_start_sector + fsi->num_FAT_sectors;
|
||||
fsi->data_start_sector = fsi->root_start_sector;
|
||||
|
||||
/* SPEC violation for compatibility */
|
||||
fsi->num_sectors = get_unaligned_le16(p_bpb->bpb.num_sectors);
|
||||
if (!fsi->num_sectors)
|
||||
fsi->num_sectors = le32_to_cpu(p_bpb->bpb.num_huge_sectors);
|
||||
|
||||
/* 2nd check */
|
||||
if (!fsi->num_sectors) {
|
||||
sdfat_msg(sb, KERN_ERR, "bogus number of total sector count");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fsi->num_clusters = (u32)((fsi->num_sectors - fsi->data_start_sector) >> fsi->sect_per_clus_bits) + CLUS_BASE;
|
||||
/* because the cluster index starts with 2 */
|
||||
|
||||
fsi->vol_type = FAT32;
|
||||
fsi->vol_id = get_unaligned_le32(p_bpb->bsx.vol_serial);
|
||||
|
||||
fsi->root_dir = le32_to_cpu(p_bpb->bpb.root_cluster);
|
||||
fsi->root_dir = le32_to_cpu(p_bpb->bpb.f32.root_cluster);
|
||||
fsi->dentries_in_root = 0;
|
||||
fsi->dentries_per_clu = 1 << (fsi->cluster_size_bits - DENTRY_SIZE_BITS);
|
||||
|
||||
fsi->vol_flag = VOL_CLEAN;
|
||||
fsi->clu_srch_ptr = 2;
|
||||
fsi->used_clusters = (u32) ~0;
|
||||
if (mount_fat_common(sb, fsi, &p_bpb->bpb, 0))
|
||||
return -EINVAL;
|
||||
|
||||
fsi->fs_func = &fat_fs_func;
|
||||
/* Should be initialized before calling amap_create() */
|
||||
fsi->vol_type = FAT32;
|
||||
fat_ent_ops_init(sb);
|
||||
|
||||
/* Delayed / smart allocation related init */
|
||||
fsi->reserved_clusters = 0;
|
||||
|
||||
/* Should be initialized before calling amap_create() */
|
||||
fat_ent_ops_init(sb);
|
||||
|
||||
/* AU Map Creation */
|
||||
if (SDFAT_SB(sb)->options.improved_allocation & SDFAT_ALLOC_SMART) {
|
||||
u32 hidden_sectors = le32_to_cpu(p_bpb->bpb.num_hid_sectors);
|
||||
u32 calc_hid_sect = 0;
|
||||
int ret;
|
||||
|
||||
|
||||
/* calculate hidden sector size */
|
||||
calc_hid_sect = __calc_hidden_sect(sb);
|
||||
if (calc_hid_sect != hidden_sectors) {
|
||||
|
||||
@@ -355,13 +355,6 @@ static inline bool is_reserved_clus(u32 clus)
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool is_valid_clus(FS_INFO_T *fsi, u32 clus)
|
||||
{
|
||||
if (clus < CLUS_BASE || fsi->num_clusters <= clus)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
s32 fat_ent_get(struct super_block *sb, u32 loc, u32 *content)
|
||||
{
|
||||
FS_INFO_T *fsi = &(SDFAT_SB(sb)->fsi);
|
||||
|
||||
+10
-15
@@ -55,15 +55,6 @@
|
||||
/*************************************************************************
|
||||
* FUNCTIONS WHICH HAS KERNEL VERSION DEPENDENCY
|
||||
*************************************************************************/
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0)
|
||||
#define CURRENT_TIME_SEC timespec64_trunc(current_kernel_time64(), NSEC_PER_SEC)
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
#define CURRENT_TIME_SEC timespec_trunc(current_kernel_time(), NSEC_PER_SEC)
|
||||
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) */
|
||||
/* EMPTY */
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef CONFIG_SDFAT_UEVENT
|
||||
static struct kobject sdfat_uevent_kobj;
|
||||
|
||||
@@ -94,6 +85,10 @@ void sdfat_uevent_ro_remount(struct super_block *sb)
|
||||
char major[16], minor[16];
|
||||
char *envp[] = { major, minor, NULL };
|
||||
|
||||
/* Do not trigger uevent if a device has been ejected */
|
||||
if (fsapi_check_bdi_valid(sb))
|
||||
return;
|
||||
|
||||
snprintf(major, sizeof(major), "MAJOR=%d", MAJOR(bd_dev));
|
||||
snprintf(minor, sizeof(minor), "MINOR=%d", MINOR(bd_dev));
|
||||
|
||||
@@ -127,7 +122,7 @@ void __sdfat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
|
||||
pr_err("[SDFAT](%s[%d:%d]):ERR: %pV\n",
|
||||
sb->s_id, MAJOR(bd_dev), MINOR(bd_dev), &vaf);
|
||||
#ifdef CONFIG_SDFAT_SUPPORT_STLOG
|
||||
if (opts->errors == SDFAT_ERRORS_RO && !(sb->s_flags & MS_RDONLY)) {
|
||||
if (opts->errors == SDFAT_ERRORS_RO && !sb_rdonly(sb)) {
|
||||
ST_LOG("[SDFAT](%s[%d:%d]):ERR: %pV\n",
|
||||
sb->s_id, MAJOR(bd_dev), MINOR(bd_dev), &vaf);
|
||||
}
|
||||
@@ -138,8 +133,8 @@ void __sdfat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
|
||||
if (opts->errors == SDFAT_ERRORS_PANIC) {
|
||||
panic("[SDFAT](%s[%d:%d]): fs panic from previous error\n",
|
||||
sb->s_id, MAJOR(bd_dev), MINOR(bd_dev));
|
||||
} else if (opts->errors == SDFAT_ERRORS_RO && !(sb->s_flags & MS_RDONLY)) {
|
||||
sb->s_flags |= MS_RDONLY;
|
||||
} else if (opts->errors == SDFAT_ERRORS_RO && !sb_rdonly(sb)) {
|
||||
sb->s_flags |= SB_RDONLY;
|
||||
sdfat_statistics_set_mnt_ro();
|
||||
pr_err("[SDFAT](%s[%d:%d]): Filesystem has been set "
|
||||
"read-only\n", sb->s_id, MAJOR(bd_dev), MINOR(bd_dev));
|
||||
@@ -333,12 +328,12 @@ void sdfat_time_unix2fat(struct sdfat_sb_info *sbi, sdfat_timespec_t *ts,
|
||||
tp->Year = year;
|
||||
}
|
||||
|
||||
TIMESTAMP_T *tm_now(struct sdfat_sb_info *sbi, TIMESTAMP_T *tp)
|
||||
TIMESTAMP_T *tm_now(struct inode *inode, TIMESTAMP_T *tp)
|
||||
{
|
||||
sdfat_timespec_t ts = CURRENT_TIME_SEC;
|
||||
sdfat_timespec_t ts = current_time(inode);
|
||||
DATE_TIME_T dt;
|
||||
|
||||
sdfat_time_unix2fat(sbi, &ts, &dt);
|
||||
sdfat_time_unix2fat(SDFAT_SB(inode->i_sb), &ts, &dt);
|
||||
|
||||
tp->year = dt.Year;
|
||||
tp->mon = dt.Month;
|
||||
|
||||
+134
-43
@@ -70,6 +70,9 @@
|
||||
|
||||
#ifdef CONFIG_SDFAT_ALIGNED_MPAGE_WRITE
|
||||
|
||||
#define MIN_ALIGNED_SIZE (PAGE_SIZE)
|
||||
#define MIN_ALIGNED_SIZE_MASK (MIN_ALIGNED_SIZE - 1)
|
||||
|
||||
/*************************************************************************
|
||||
* INNER FUNCTIONS FOR FUNCTIONS WHICH HAS KERNEL VERSION DEPENDENCY
|
||||
*************************************************************************/
|
||||
@@ -97,6 +100,14 @@ static inline void __sdfat_clean_bdev_aliases(struct block_device *bdev, sector_
|
||||
{
|
||||
unmap_underlying_metadata(bdev, block);
|
||||
}
|
||||
|
||||
static inline int wbc_to_write_flags(struct writeback_control *wbc)
|
||||
{
|
||||
if (wbc->sync_mode == WB_SYNC_ALL)
|
||||
return WRITE_SYNC;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
|
||||
@@ -236,6 +247,9 @@ static inline unsigned int __calc_size_to_align(struct super_block *sb)
|
||||
|
||||
if (aligned && (max_sectors & (aligned - 1)))
|
||||
aligned = 0;
|
||||
|
||||
if (aligned && aligned < (MIN_ALIGNED_SIZE >> SECTOR_SIZE_BITS))
|
||||
aligned = 0;
|
||||
out:
|
||||
return aligned;
|
||||
}
|
||||
@@ -248,6 +262,24 @@ struct mpage_data {
|
||||
unsigned int size_to_align;
|
||||
};
|
||||
|
||||
/*
|
||||
* After completing I/O on a page, call this routine to update the page
|
||||
* flags appropriately
|
||||
*/
|
||||
static void __page_write_endio(struct page *page, int err)
|
||||
{
|
||||
if (err) {
|
||||
struct address_space *mapping;
|
||||
|
||||
SetPageError(page);
|
||||
mapping = page_mapping(page);
|
||||
if (mapping)
|
||||
mapping_set_error(mapping, err);
|
||||
}
|
||||
__dfr_writepage_end_io(page);
|
||||
end_page_writeback(page);
|
||||
}
|
||||
|
||||
/*
|
||||
* I/O completion handler for multipage BIOs.
|
||||
*
|
||||
@@ -262,25 +294,37 @@ struct mpage_data {
|
||||
*/
|
||||
static void __mpage_write_end_io(struct bio *bio, int err)
|
||||
{
|
||||
struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1;
|
||||
struct bio_vec *bv;
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0)
|
||||
struct bvec_iter_all iter_all;
|
||||
|
||||
ASSERT(bio_data_dir(bio) == WRITE); /* only write */
|
||||
|
||||
/* Use bio_for_each_segemnt_all() to support multi-page bvec */
|
||||
bio_for_each_segment_all(bv, bio, iter_all)
|
||||
__page_write_endio(bv->bv_page, err);
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
|
||||
struct bvec_iter_all iter_all;
|
||||
int i;
|
||||
|
||||
ASSERT(bio_data_dir(bio) == WRITE); /* only write */
|
||||
|
||||
/* Use bio_for_each_segemnt_all() to support multi-page bvec */
|
||||
bio_for_each_segment_all(bv, bio, i, iter_all)
|
||||
__page_write_endio(bv->bv_page, err);
|
||||
#else
|
||||
ASSERT(bio_data_dir(bio) == WRITE); /* only write */
|
||||
bv = bio->bi_io_vec + bio->bi_vcnt - 1;
|
||||
|
||||
do {
|
||||
struct page *page = bvec->bv_page;
|
||||
struct page *page = bv->bv_page;
|
||||
|
||||
if (--bvec >= bio->bi_io_vec)
|
||||
prefetchw(&bvec->bv_page->flags);
|
||||
if (err) {
|
||||
SetPageError(page);
|
||||
if (page->mapping)
|
||||
mapping_set_error(page->mapping, err);
|
||||
}
|
||||
if (--bv >= bio->bi_io_vec)
|
||||
prefetchw(&bv->bv_page->flags);
|
||||
|
||||
__dfr_writepage_end_io(page);
|
||||
|
||||
end_page_writeback(page);
|
||||
} while (bvec >= bio->bi_io_vec);
|
||||
__page_write_endio(page, err);
|
||||
} while (bv >= bio->bi_io_vec);
|
||||
#endif
|
||||
bio_put(bio);
|
||||
}
|
||||
|
||||
@@ -312,6 +356,65 @@ mpage_alloc(struct block_device *bdev,
|
||||
return bio;
|
||||
}
|
||||
|
||||
|
||||
#if IS_BUILTIN(CONFIG_SDFAT_FS)
|
||||
#define __write_boundary_block write_boundary_block
|
||||
#define sdfat_buffer_heads_over_limit buffer_heads_over_limit
|
||||
#else
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
|
||||
/*
|
||||
* Called when we've recently written block `bblock', and it is known that
|
||||
* `bblock' was for a buffer_boundary() buffer. This means that the block at
|
||||
* `bblock + 1' is probably a dirty indirect block. Hunt it down and, if it's
|
||||
* dirty, schedule it for IO. So that indirects merge nicely with their data.
|
||||
*/
|
||||
static void __write_boundary_block(struct block_device *bdev,
|
||||
sector_t bblock, unsigned int blocksize)
|
||||
{
|
||||
struct buffer_head *bh = __find_get_block(bdev, bblock + 1, blocksize);
|
||||
|
||||
if (bh) {
|
||||
if (buffer_dirty(bh))
|
||||
ll_rw_block(REQ_OP_WRITE, 0, 1, &bh);
|
||||
put_bh(bh);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#warning "Need an alternative of write_boundary_block function"
|
||||
#define __write_boundary_block write_boundary_block
|
||||
#endif
|
||||
|
||||
#warning "sdfat could not check buffer_heads_over_limit on module. Assumed zero"
|
||||
#define sdfat_buffer_heads_over_limit (0)
|
||||
#endif
|
||||
|
||||
static void clean_buffers(struct page *page, unsigned int first_unmapped)
|
||||
{
|
||||
unsigned int buffer_counter = 0;
|
||||
struct buffer_head *bh, *head;
|
||||
|
||||
if (!page_has_buffers(page))
|
||||
return;
|
||||
head = page_buffers(page);
|
||||
bh = head;
|
||||
|
||||
do {
|
||||
if (buffer_counter++ == first_unmapped)
|
||||
break;
|
||||
clear_buffer_dirty(bh);
|
||||
bh = bh->b_this_page;
|
||||
} while (bh != head);
|
||||
|
||||
/*
|
||||
* we cannot drop the bh if the page is not uptodate or a concurrent
|
||||
* readpage would fail to serialize with the bh and it would read from
|
||||
* disk before we reach the platter.
|
||||
*/
|
||||
if (sdfat_buffer_heads_over_limit && PageUptodate(page))
|
||||
try_to_free_buffers(page);
|
||||
}
|
||||
|
||||
static int sdfat_mpage_writepage(struct page *page,
|
||||
struct writeback_control *wbc, void *data)
|
||||
{
|
||||
@@ -335,6 +438,7 @@ static int sdfat_mpage_writepage(struct page *page,
|
||||
loff_t i_size = i_size_read(inode);
|
||||
unsigned long end_index = i_size >> PAGE_SHIFT;
|
||||
int ret = 0;
|
||||
int op_flags = wbc_to_write_flags(wbc);
|
||||
|
||||
if (page_has_buffers(page)) {
|
||||
struct buffer_head *head = page_buffers(page);
|
||||
@@ -490,22 +594,25 @@ page_is_mapped:
|
||||
*/
|
||||
if (bio) {
|
||||
if (mpd->last_block_in_bio != blocks[0] - 1) {
|
||||
bio = mpage_bio_submit_write(0, bio);
|
||||
bio = mpage_bio_submit_write(op_flags, bio);
|
||||
} else if (mpd->size_to_align) {
|
||||
unsigned int mask = mpd->size_to_align - 1;
|
||||
sector_t max_end_block =
|
||||
(__sdfat_bio_sector(bio) & ~(mask)) + mask;
|
||||
|
||||
if ((__sdfat_bio_size(bio) != (1 << (mask + 1))) &&
|
||||
if ((__sdfat_bio_size(bio) & MIN_ALIGNED_SIZE_MASK) &&
|
||||
(mpd->last_block_in_bio == max_end_block)) {
|
||||
int op_nomerge = op_flags | REQ_NOMERGE;
|
||||
|
||||
MMSG("%s(inode:%p) alignment mpage_bio_submit"
|
||||
"(start:%u, len:%u aligned:%u)\n",
|
||||
"(start:%u, len:%u size:%u aligned:%u)\n",
|
||||
__func__, inode,
|
||||
(unsigned int)__sdfat_bio_sector(bio),
|
||||
(unsigned int)(mpd->last_block_in_bio -
|
||||
__sdfat_bio_sector(bio) + 1),
|
||||
(unsigned int)__sdfat_bio_size(bio),
|
||||
(unsigned int)mpd->size_to_align);
|
||||
bio = mpage_bio_submit_write(REQ_NOMERGE, bio);
|
||||
bio = mpage_bio_submit_write(op_nomerge, bio);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -525,7 +632,7 @@ alloc_new:
|
||||
*/
|
||||
length = first_unmapped << blkbits;
|
||||
if (bio_add_page(bio, page, length, 0) < length) {
|
||||
bio = mpage_bio_submit_write(0, bio);
|
||||
bio = mpage_bio_submit_write(op_flags, bio);
|
||||
goto alloc_new;
|
||||
}
|
||||
|
||||
@@ -533,26 +640,7 @@ alloc_new:
|
||||
* OK, we have our BIO, so we can now mark the buffers clean. Make
|
||||
* sure to only clean buffers which we know we'll be writing.
|
||||
*/
|
||||
if (page_has_buffers(page)) {
|
||||
struct buffer_head *head = page_buffers(page);
|
||||
struct buffer_head *bh = head;
|
||||
unsigned int buffer_counter = 0;
|
||||
|
||||
do {
|
||||
if (buffer_counter++ == first_unmapped)
|
||||
break;
|
||||
clear_buffer_dirty(bh);
|
||||
bh = bh->b_this_page;
|
||||
} while (bh != head);
|
||||
|
||||
/*
|
||||
* we cannot drop the bh if the page is not uptodate
|
||||
* or a concurrent readpage would fail to serialize with the bh
|
||||
* and it would read from disk before we reach the platter.
|
||||
*/
|
||||
if (buffer_heads_over_limit && PageUptodate(page))
|
||||
try_to_free_buffers(page);
|
||||
}
|
||||
clean_buffers(page, first_unmapped);
|
||||
|
||||
BUG_ON(PageWriteback(page));
|
||||
set_page_writeback(page);
|
||||
@@ -579,9 +667,9 @@ alloc_new:
|
||||
|
||||
unlock_page(page);
|
||||
if (boundary || (first_unmapped != blocks_per_page)) {
|
||||
bio = mpage_bio_submit_write(0, bio);
|
||||
bio = mpage_bio_submit_write(op_flags, bio);
|
||||
if (boundary_block) {
|
||||
write_boundary_block(boundary_bdev,
|
||||
__write_boundary_block(boundary_bdev,
|
||||
boundary_block, 1 << blkbits);
|
||||
}
|
||||
} else {
|
||||
@@ -592,7 +680,7 @@ alloc_new:
|
||||
|
||||
confused:
|
||||
if (bio)
|
||||
bio = mpage_bio_submit_write(0, bio);
|
||||
bio = mpage_bio_submit_write(op_flags, bio);
|
||||
|
||||
if (mpd->use_writepage) {
|
||||
ret = mapping->a_ops->writepage(page, wbc);
|
||||
@@ -625,8 +713,11 @@ int sdfat_mpage_writepages(struct address_space *mapping,
|
||||
BUG_ON(!get_block);
|
||||
blk_start_plug(&plug);
|
||||
ret = write_cache_pages(mapping, wbc, sdfat_mpage_writepage, &mpd);
|
||||
if (mpd.bio)
|
||||
mpage_bio_submit_write(0, mpd.bio);
|
||||
if (mpd.bio) {
|
||||
int op_flags = wbc_to_write_flags(wbc);
|
||||
|
||||
mpage_bio_submit_write(op_flags, mpd.bio);
|
||||
}
|
||||
blk_finish_plug(&plug);
|
||||
return ret;
|
||||
}
|
||||
|
||||
+155
-58
@@ -190,6 +190,14 @@ static inline void __sdfat_clean_bdev_aliases(struct block_device *bdev, sector_
|
||||
{
|
||||
unmap_underlying_metadata(bdev, block);
|
||||
}
|
||||
|
||||
static inline int wbc_to_write_flags(struct writeback_control *wbc)
|
||||
{
|
||||
if (wbc->sync_mode == WB_SYNC_ALL)
|
||||
return WRITE_SYNC;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -224,9 +232,12 @@ static int setattr_prepare(struct dentry *dentry, struct iattr *attr)
|
||||
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
|
||||
static inline void __sdfat_submit_bio_write(struct bio *bio)
|
||||
static inline void __sdfat_submit_bio_write(struct bio *bio,
|
||||
struct writeback_control *wbc)
|
||||
{
|
||||
bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
|
||||
int write_flags = wbc_to_write_flags(wbc);
|
||||
|
||||
bio_set_op_attrs(bio, REQ_OP_WRITE, write_flags);
|
||||
submit_bio(bio);
|
||||
}
|
||||
|
||||
@@ -240,9 +251,12 @@ static inline unsigned long __sdfat_init_name_hash(const struct dentry *dentry)
|
||||
return init_name_hash(dentry);
|
||||
}
|
||||
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0) */
|
||||
static inline void __sdfat_submit_bio_write(struct bio *bio)
|
||||
static inline void __sdfat_submit_bio_write(struct bio *bio,
|
||||
struct writeback_control *wbc)
|
||||
{
|
||||
submit_bio(WRITE, bio);
|
||||
int write_flags = wbc_to_write_flags(wbc);
|
||||
|
||||
submit_bio(WRITE | write_flags, bio);
|
||||
}
|
||||
|
||||
static inline unsigned int __sdfat_full_name_hash(const struct dentry *unused, const char *name, unsigned int len)
|
||||
@@ -289,6 +303,15 @@ static inline int sdfat_remount_syncfs(struct super_block *sb)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0)
|
||||
/* EMPTY */
|
||||
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0) */
|
||||
static inline void truncate_inode_pages_final(struct address_space *mapping)
|
||||
{
|
||||
truncate_inode_pages(mapping, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0)
|
||||
static inline sector_t __sdfat_bio_sector(struct bio *bio)
|
||||
@@ -865,15 +888,6 @@ static int sdfat_file_fsync(struct file *filp, int datasync)
|
||||
/*************************************************************************
|
||||
* MORE FUNCTIONS WHICH HAS KERNEL VERSION DEPENDENCY
|
||||
*************************************************************************/
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0)
|
||||
#define CURRENT_TIME_SEC timespec64_trunc(current_kernel_time64(), NSEC_PER_SEC)
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
#define CURRENT_TIME_SEC timespec_trunc(current_kernel_time(), NSEC_PER_SEC)
|
||||
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) */
|
||||
/* EMPTY */
|
||||
#endif
|
||||
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
|
||||
static void sdfat_writepage_end_io(struct bio *bio)
|
||||
{
|
||||
@@ -2147,7 +2161,7 @@ static int sdfat_dfr_ioctl(struct inode *inode, struct file *filp,
|
||||
__lock_super(sb);
|
||||
|
||||
/* Check if FS_ERROR occurred */
|
||||
if (sb->s_flags & MS_RDONLY) {
|
||||
if (sb_rdonly(sb)) {
|
||||
dfr_err("RDONLY partition (err %d)", -EPERM);
|
||||
__unlock_super(sb);
|
||||
return -EPERM;
|
||||
@@ -2358,7 +2372,7 @@ static int __sdfat_create(struct inode *dir, struct dentry *dentry)
|
||||
|
||||
TMSG("%s entered\n", __func__);
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(dir);
|
||||
|
||||
err = fsapi_create(dir, (u8 *) dentry->d_name.name, FM_REGULAR, &fid);
|
||||
if (err)
|
||||
@@ -2521,7 +2535,7 @@ static int sdfat_unlink(struct inode *dir, struct dentry *dentry)
|
||||
|
||||
TMSG("%s entered\n", __func__);
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(dir);
|
||||
|
||||
SDFAT_I(inode)->fid.size = i_size_read(inode);
|
||||
|
||||
@@ -2570,7 +2584,7 @@ static int sdfat_symlink(struct inode *dir, struct dentry *dentry, const char *t
|
||||
|
||||
TMSG("%s entered\n", __func__);
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(dir);
|
||||
|
||||
err = fsapi_create(dir, (u8 *) dentry->d_name.name, FM_SYMLINK, &fid);
|
||||
if (err)
|
||||
@@ -2631,7 +2645,7 @@ static int __sdfat_mkdir(struct inode *dir, struct dentry *dentry)
|
||||
|
||||
TMSG("%s entered\n", __func__);
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(dir);
|
||||
|
||||
err = fsapi_mkdir(dir, (u8 *) dentry->d_name.name, &fid);
|
||||
if (err)
|
||||
@@ -2680,7 +2694,7 @@ static int sdfat_rmdir(struct inode *dir, struct dentry *dentry)
|
||||
|
||||
TMSG("%s entered\n", __func__);
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(dir);
|
||||
|
||||
SDFAT_I(inode)->fid.size = i_size_read(inode);
|
||||
|
||||
@@ -2725,7 +2739,7 @@ static int __sdfat_rename(struct inode *old_dir, struct dentry *old_dentry,
|
||||
old_inode = old_dentry->d_inode;
|
||||
new_inode = new_dentry->d_inode;
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(old_inode);
|
||||
|
||||
SDFAT_I(old_inode)->fid.size = i_size_read(old_inode);
|
||||
|
||||
@@ -2803,7 +2817,7 @@ static int sdfat_cont_expand(struct inode *inode, loff_t size)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC;
|
||||
inode->i_ctime = inode->i_mtime = current_time(inode);
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
if (!IS_SYNC(inode))
|
||||
@@ -3061,7 +3075,7 @@ static void sdfat_truncate(struct inode *inode, loff_t old_size)
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
inode->i_ctime = inode->i_mtime = CURRENT_TIME_SEC;
|
||||
inode->i_ctime = inode->i_mtime = current_time(inode);
|
||||
if (IS_DIRSYNC(inode))
|
||||
(void) sdfat_sync_inode(inode);
|
||||
else
|
||||
@@ -3489,7 +3503,8 @@ static int sdfat_readpages(struct file *file, struct address_space *mapping,
|
||||
}
|
||||
|
||||
static inline void sdfat_submit_fullpage_bio(struct block_device *bdev,
|
||||
sector_t sector, unsigned int length, struct page *page)
|
||||
sector_t sector, unsigned int length,
|
||||
struct page *page, struct writeback_control *wbc)
|
||||
{
|
||||
/* Single page bio submit */
|
||||
struct bio *bio;
|
||||
@@ -3513,7 +3528,7 @@ static inline void sdfat_submit_fullpage_bio(struct block_device *bdev,
|
||||
__sdfat_set_bio_iterate(bio, sector, length, 0, 0);
|
||||
|
||||
bio->bi_end_io = sdfat_writepage_end_io;
|
||||
__sdfat_submit_bio_write(bio);
|
||||
__sdfat_submit_bio_write(bio, wbc);
|
||||
}
|
||||
|
||||
static int sdfat_writepage(struct page *page, struct writeback_control *wbc)
|
||||
@@ -3648,7 +3663,7 @@ static int sdfat_writepage(struct page *page, struct writeback_control *wbc)
|
||||
sdfat_submit_fullpage_bio(head->b_bdev,
|
||||
head->b_blocknr << (sb->s_blocksize_bits - SECTOR_SIZE_BITS),
|
||||
nr_blocks_towrite << inode->i_blkbits,
|
||||
page);
|
||||
page, wbc);
|
||||
|
||||
unlock_page(page);
|
||||
|
||||
@@ -3713,7 +3728,7 @@ static int sdfat_check_writable(struct super_block *sb)
|
||||
if (fsapi_check_bdi_valid(sb))
|
||||
return -EIO;
|
||||
|
||||
if (sb->s_flags & MS_RDONLY)
|
||||
if (sb_rdonly(sb))
|
||||
return -EROFS;
|
||||
|
||||
return 0;
|
||||
@@ -3788,7 +3803,7 @@ static int sdfat_write_end(struct file *file, struct address_space *mapping,
|
||||
sdfat_write_failed(mapping, pos+len);
|
||||
|
||||
if (!(err < 0) && !(fid->attr & ATTR_ARCHIVE)) {
|
||||
inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC;
|
||||
inode->i_mtime = inode->i_ctime = current_time(inode);
|
||||
fid->attr |= ATTR_ARCHIVE;
|
||||
mark_inode_dirty(inode);
|
||||
}
|
||||
@@ -4000,7 +4015,7 @@ static struct inode *sdfat_alloc_inode(struct super_block *sb)
|
||||
return &ei->vfs_inode;
|
||||
}
|
||||
|
||||
static void sdfat_destroy_inode(struct inode *inode)
|
||||
static void sdfat_free_inode(struct inode *inode)
|
||||
{
|
||||
if (SDFAT_I(inode)->target) {
|
||||
kfree(SDFAT_I(inode)->target);
|
||||
@@ -4010,6 +4025,28 @@ static void sdfat_destroy_inode(struct inode *inode)
|
||||
kmem_cache_free(sdfat_inode_cachep, SDFAT_I(inode));
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
|
||||
/* Use free_inode instead of destroy_inode */
|
||||
#define sdfat_destroy_inode (NULL)
|
||||
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
||||
static void sdfat_i_callback(struct rcu_head *head)
|
||||
{
|
||||
struct inode *inode = container_of(head, struct inode, i_rcu);
|
||||
|
||||
sdfat_free_inode(inode);
|
||||
}
|
||||
|
||||
static void sdfat_destroy_inode(struct inode *inode)
|
||||
{
|
||||
call_rcu(&inode->i_rcu, sdfat_i_callback);
|
||||
}
|
||||
#else
|
||||
static void sdfat_destroy_inode(struct inode *inode)
|
||||
{
|
||||
sdfat_free_inode(inode);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int __sdfat_write_inode(struct inode *inode, int sync)
|
||||
{
|
||||
struct super_block *sb = inode->i_sb;
|
||||
@@ -4045,7 +4082,7 @@ static int sdfat_write_inode(struct inode *inode, struct writeback_control *wbc)
|
||||
|
||||
static void sdfat_evict_inode(struct inode *inode)
|
||||
{
|
||||
truncate_inode_pages(&inode->i_data, 0);
|
||||
truncate_inode_pages_final(&inode->i_data);
|
||||
|
||||
if (!inode->i_nlink) {
|
||||
loff_t old_size = i_size_read(inode);
|
||||
@@ -4073,7 +4110,62 @@ static void sdfat_evict_inode(struct inode *inode)
|
||||
/* remove_inode_hash(inode); */
|
||||
}
|
||||
|
||||
static void sdfat_free_sb_info(struct sdfat_sb_info *sbi)
|
||||
{
|
||||
if (sbi->nls_disk) {
|
||||
unload_nls(sbi->nls_disk);
|
||||
sbi->nls_disk = NULL;
|
||||
sbi->options.codepage = sdfat_default_codepage;
|
||||
}
|
||||
if (sbi->nls_io) {
|
||||
unload_nls(sbi->nls_io);
|
||||
sbi->nls_io = NULL;
|
||||
}
|
||||
if (sbi->options.iocharset != sdfat_default_iocharset) {
|
||||
kfree(sbi->options.iocharset);
|
||||
sbi->options.iocharset = sdfat_default_iocharset;
|
||||
}
|
||||
|
||||
if (sbi->use_vmalloc) {
|
||||
vfree(sbi);
|
||||
return;
|
||||
}
|
||||
kfree(sbi);
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
||||
static void delayed_free(struct rcu_head *p)
|
||||
{
|
||||
struct sdfat_sb_info *sbi = container_of(p, struct sdfat_sb_info, rcu);
|
||||
|
||||
sdfat_free_sb_info(sbi);
|
||||
}
|
||||
|
||||
static void __sdfat_destroy_sb_info(struct super_block *sb)
|
||||
{
|
||||
struct sdfat_sb_info *sbi = SDFAT_SB(sb);
|
||||
|
||||
call_rcu(&sbi->rcu, delayed_free);
|
||||
}
|
||||
#else
|
||||
static void __sdfat_destroy_sb_info(struct super_block *sb)
|
||||
{
|
||||
struct sdfat_sb_info *sbi = SDFAT_SB(sb);
|
||||
|
||||
sdfat_free_sb_info(sbi);
|
||||
sb->s_fs_info = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void sdfat_destroy_sb_info(struct super_block *sb)
|
||||
{
|
||||
struct sdfat_sb_info *sbi = SDFAT_SB(sb);
|
||||
|
||||
kobject_del(&sbi->sb_kobj);
|
||||
kobject_put(&sbi->sb_kobj);
|
||||
|
||||
__sdfat_destroy_sb_info(sb);
|
||||
}
|
||||
|
||||
static void sdfat_put_super(struct super_block *sb)
|
||||
{
|
||||
@@ -4090,28 +4182,7 @@ static void sdfat_put_super(struct super_block *sb)
|
||||
__free_dfr_mem_if_required(sb);
|
||||
err = fsapi_umount(sb);
|
||||
|
||||
if (sbi->nls_disk) {
|
||||
unload_nls(sbi->nls_disk);
|
||||
sbi->nls_disk = NULL;
|
||||
sbi->options.codepage = sdfat_default_codepage;
|
||||
}
|
||||
if (sbi->nls_io) {
|
||||
unload_nls(sbi->nls_io);
|
||||
sbi->nls_io = NULL;
|
||||
}
|
||||
if (sbi->options.iocharset != sdfat_default_iocharset) {
|
||||
kfree(sbi->options.iocharset);
|
||||
sbi->options.iocharset = sdfat_default_iocharset;
|
||||
}
|
||||
|
||||
sb->s_fs_info = NULL;
|
||||
|
||||
kobject_del(&sbi->sb_kobj);
|
||||
kobject_put(&sbi->sb_kobj);
|
||||
if (!sbi->use_vmalloc)
|
||||
kfree(sbi);
|
||||
else
|
||||
vfree(sbi);
|
||||
sdfat_destroy_sb_info(sb);
|
||||
|
||||
sdfat_log_msg(sb, KERN_INFO, "unmounted successfully! %s",
|
||||
err ? "(with previous I/O errors)" : "");
|
||||
@@ -4142,7 +4213,7 @@ static void sdfat_write_super(struct super_block *sb)
|
||||
/* flush delayed FAT/DIR dirty */
|
||||
__flush_delayed_meta(sb, 0);
|
||||
|
||||
if (!(sb->s_flags & MS_RDONLY))
|
||||
if (!sb_rdonly(sb))
|
||||
fsapi_sync_fs(sb, 0);
|
||||
|
||||
__unlock_super(sb);
|
||||
@@ -4270,7 +4341,8 @@ static int sdfat_statfs(struct dentry *dentry, struct kstatfs *buf)
|
||||
buf->f_bavail = info.FreeClusters;
|
||||
buf->f_fsid.val[0] = (u32)id;
|
||||
buf->f_fsid.val[1] = (u32)(id >> 32);
|
||||
buf->f_namelen = 260;
|
||||
/* Unicode utf8 255 characters */
|
||||
buf->f_namelen = MAX_NAME_LENGTH * MAX_CHARSET_SIZE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -4282,7 +4354,7 @@ static int sdfat_remount(struct super_block *sb, int *flags, char *data)
|
||||
struct sdfat_sb_info *sbi = SDFAT_SB(sb);
|
||||
FS_INFO_T *fsi = &(sbi->fsi);
|
||||
|
||||
*flags |= MS_NODIRATIME;
|
||||
*flags |= SB_NODIRATIME;
|
||||
|
||||
prev_sb_flags = sb->s_flags;
|
||||
|
||||
@@ -4291,8 +4363,8 @@ static int sdfat_remount(struct super_block *sb, int *flags, char *data)
|
||||
fsapi_set_vol_flags(sb, VOL_CLEAN, 1);
|
||||
|
||||
sdfat_log_msg(sb, KERN_INFO, "re-mounted(%s->%s), eio=0x%x, Opts: %s",
|
||||
(prev_sb_flags & MS_RDONLY) ? "ro" : "rw",
|
||||
(*flags & MS_RDONLY) ? "ro" : "rw",
|
||||
(prev_sb_flags & SB_RDONLY) ? "ro" : "rw",
|
||||
(*flags & SB_RDONLY) ? "ro" : "rw",
|
||||
fsi->prev_eio, orig_data);
|
||||
kfree(orig_data);
|
||||
return 0;
|
||||
@@ -4355,7 +4427,11 @@ static int __sdfat_show_options(struct seq_file *m, struct super_block *sb)
|
||||
|
||||
static const struct super_operations sdfat_sops = {
|
||||
.alloc_inode = sdfat_alloc_inode,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
|
||||
.free_inode = sdfat_free_inode,
|
||||
#else
|
||||
.destroy_inode = sdfat_destroy_inode,
|
||||
#endif
|
||||
.write_inode = sdfat_write_inode,
|
||||
.evict_inode = sdfat_evict_inode,
|
||||
.put_super = sdfat_put_super,
|
||||
@@ -4798,7 +4874,7 @@ static int sdfat_read_root(struct inode *inode)
|
||||
FS_INFO_T *fsi = &(sbi->fsi);
|
||||
DIR_ENTRY_T info;
|
||||
|
||||
ts = CURRENT_TIME_SEC;
|
||||
ts = current_time(inode);
|
||||
|
||||
SDFAT_I(inode)->fid.dir.dir = fsi->root_dir;
|
||||
SDFAT_I(inode)->fid.dir.flags = 0x01;
|
||||
@@ -4882,11 +4958,18 @@ static int sdfat_fill_super(struct super_block *sb, void *data, int silent)
|
||||
|
||||
mutex_init(&sbi->s_vlock);
|
||||
sb->s_fs_info = sbi;
|
||||
sb->s_flags |= MS_NODIRATIME;
|
||||
sb->s_flags |= SB_NODIRATIME;
|
||||
sb->s_magic = SDFAT_SUPER_MAGIC;
|
||||
sb->s_op = &sdfat_sops;
|
||||
ratelimit_state_init(&sbi->ratelimit, DEFAULT_RATELIMIT_INTERVAL,
|
||||
DEFAULT_RATELIMIT_BURST);
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
||||
sb->s_time_gran = NSEC_PER_SEC; /* the same with default */
|
||||
sb->s_time_min = SDFAT_MIN_TIMESTAMP_SECS;
|
||||
sb->s_time_max = SDFAT_MAX_TIMESTAMP_SECS;
|
||||
#endif
|
||||
|
||||
err = parse_options(sb, data, silent, &debug, &sbi->options);
|
||||
if (err) {
|
||||
sdfat_log_msg(sb, KERN_ERR, "failed to parse options");
|
||||
@@ -5033,6 +5116,13 @@ static int __init sdfat_init_inodecache(void)
|
||||
|
||||
static void sdfat_destroy_inodecache(void)
|
||||
{
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
||||
/*
|
||||
* Make sure all delayed rcu free inodes are flushed before we
|
||||
* destroy cache.
|
||||
*/
|
||||
rcu_barrier();
|
||||
#endif
|
||||
kmem_cache_destroy(sdfat_inode_cachep);
|
||||
}
|
||||
|
||||
@@ -5181,6 +5271,13 @@ error:
|
||||
|
||||
static void __exit exit_sdfat_fs(void)
|
||||
{
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
||||
/*
|
||||
* Make sure all delayed rcu free inodes are flushed before we
|
||||
* destroy cache.
|
||||
*/
|
||||
rcu_barrier();
|
||||
#endif
|
||||
sdfat_uevent_uninit();
|
||||
sdfat_statistics_uninit();
|
||||
|
||||
|
||||
+35
-1
@@ -142,6 +142,9 @@ struct sdfat_sb_info {
|
||||
struct mutex s_vlock; /* volume lock */
|
||||
int use_vmalloc;
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
|
||||
struct rcu_head rcu;
|
||||
#endif
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)
|
||||
int s_dirt;
|
||||
struct mutex s_lock; /* superblock lock */
|
||||
@@ -215,6 +218,30 @@ typedef struct timespec64 sdfat_timespec_t;
|
||||
typedef struct timespec sdfat_timespec_t;
|
||||
#endif
|
||||
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
|
||||
|
||||
#else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) */
|
||||
/*
|
||||
* sb->s_flags. Note that these mirror the equivalent MS_* flags where
|
||||
* represented in both.
|
||||
*/
|
||||
#define SB_RDONLY 1 /* Mount read-only */
|
||||
#define SB_NODIRATIME 2048 /* Do not update directory access times */
|
||||
static inline bool sb_rdonly(const struct super_block *sb)
|
||||
{
|
||||
return sb->s_flags & MS_RDONLY;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
|
||||
/* EMPTY */
|
||||
#else
|
||||
static inline sdfat_timespec_t current_time(struct inode *inode)
|
||||
{
|
||||
return CURRENT_TIME_SEC;
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
* FIXME : needs on-disk-slot in-memory data
|
||||
*/
|
||||
@@ -387,7 +414,14 @@ extern void sdfat_time_fat2unix(struct sdfat_sb_info *sbi, sdfat_timespec_t *ts,
|
||||
DATE_TIME_T *tp);
|
||||
extern void sdfat_time_unix2fat(struct sdfat_sb_info *sbi, sdfat_timespec_t *ts,
|
||||
DATE_TIME_T *tp);
|
||||
extern TIMESTAMP_T *tm_now(struct sdfat_sb_info *sbi, TIMESTAMP_T *tm);
|
||||
extern TIMESTAMP_T *tm_now(struct inode *inode, TIMESTAMP_T *tm);
|
||||
static inline TIMESTAMP_T *tm_now_sb(struct super_block *sb, TIMESTAMP_T *tm)
|
||||
{
|
||||
struct inode fake_inode;
|
||||
|
||||
fake_inode.i_sb = sb;
|
||||
return tm_now(&fake_inode, tm);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SDFAT_DEBUG
|
||||
|
||||
|
||||
+32
-39
@@ -145,6 +145,13 @@
|
||||
#define CS_PBR_SECTOR 1
|
||||
#define CS_DEFAULT 2
|
||||
|
||||
/* time min/max */
|
||||
/* Jan 1 GMT 00:00:00 1980 */
|
||||
#define SDFAT_MIN_TIMESTAMP_SECS 315532800LL
|
||||
/* Dec 31 GMT 23:59:59 2107 */
|
||||
#define SDFAT_MAX_TIMESTAMP_SECS 4354819199LL
|
||||
|
||||
|
||||
/*
|
||||
* ioctl command
|
||||
*/
|
||||
@@ -179,7 +186,7 @@
|
||||
/* On-Disk Type Definitions */
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
/* FAT12/16 BIOS parameter block (64 bytes) */
|
||||
/* FAT12/16/32 BIOS parameter block (64 bytes) */
|
||||
typedef struct {
|
||||
__u8 jmp_boot[3];
|
||||
__u8 oem_name[8];
|
||||
@@ -197,41 +204,28 @@ typedef struct {
|
||||
__le32 num_hid_sectors; /* . */
|
||||
__le32 num_huge_sectors;
|
||||
|
||||
__u8 phy_drv_no;
|
||||
__u8 state; /* used by WindowsNT for mount state */
|
||||
__u8 ext_signature;
|
||||
__u8 vol_serial[4];
|
||||
__u8 vol_label[11];
|
||||
__u8 vol_type[8];
|
||||
__le16 dummy;
|
||||
} bpb16_t;
|
||||
union {
|
||||
struct {
|
||||
__u8 phy_drv_no;
|
||||
__u8 state; /* used by WinNT for mount state */
|
||||
__u8 ext_signature;
|
||||
__u8 vol_serial[4];
|
||||
__u8 vol_label[11];
|
||||
__u8 vol_type[8];
|
||||
__le16 nouse;
|
||||
} f16;
|
||||
|
||||
/* FAT32 BIOS parameter block (64 bytes) */
|
||||
typedef struct {
|
||||
__u8 jmp_boot[3];
|
||||
__u8 oem_name[8];
|
||||
|
||||
__u8 sect_size[2]; /* unaligned */
|
||||
__u8 sect_per_clus;
|
||||
__le16 num_reserved;
|
||||
__u8 num_fats;
|
||||
__u8 num_root_entries[2]; /* unaligned */
|
||||
__u8 num_sectors[2]; /* unaligned */
|
||||
__u8 media_type;
|
||||
__le16 num_fat_sectors; /* zero */
|
||||
__le16 sectors_in_track;
|
||||
__le16 num_heads;
|
||||
__le32 num_hid_sectors; /* . */
|
||||
__le32 num_huge_sectors;
|
||||
|
||||
__le32 num_fat32_sectors;
|
||||
__le16 ext_flags;
|
||||
__u8 fs_version[2];
|
||||
__le32 root_cluster; /* . */
|
||||
__le16 fsinfo_sector;
|
||||
__le16 backup_sector;
|
||||
__le16 reserved[6]; /* . */
|
||||
} bpb32_t;
|
||||
struct {
|
||||
__le32 num_fat32_sectors;
|
||||
__le16 ext_flags;
|
||||
__u8 fs_version[2];
|
||||
__le32 root_cluster; /* . */
|
||||
__le16 fsinfo_sector;
|
||||
__le16 backup_sector;
|
||||
__le16 reserved[6]; /* . */
|
||||
} f32;
|
||||
};
|
||||
} bpb_t;
|
||||
|
||||
/* FAT32 EXTEND BIOS parameter block (32 bytes) */
|
||||
typedef struct {
|
||||
@@ -273,12 +267,12 @@ typedef struct {
|
||||
|
||||
/* FAT32 PBR (64 bytes) */
|
||||
typedef struct {
|
||||
bpb16_t bpb;
|
||||
bpb_t bpb;
|
||||
} pbr16_t;
|
||||
|
||||
/* FAT32 PBR[BPB+BSX] (96 bytes) */
|
||||
typedef struct {
|
||||
bpb32_t bpb;
|
||||
bpb_t bpb;
|
||||
bsx32_t bsx;
|
||||
} pbr32_t;
|
||||
|
||||
@@ -292,8 +286,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
union {
|
||||
__u8 raw[64];
|
||||
bpb16_t f16;
|
||||
bpb32_t f32;
|
||||
bpb_t fat;
|
||||
bpb64_t f64;
|
||||
} bpb;
|
||||
union {
|
||||
|
||||
+1
-1
@@ -22,4 +22,4 @@
|
||||
/* PURPOSE : sdFAT File Manager */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#define SDFAT_VERSION "2.3.0-lineage"
|
||||
#define SDFAT_VERSION "2.4.5-lineage"
|
||||
|
||||
@@ -79,12 +79,22 @@ ssize_t __sdfat_getxattr(const char *name, void *value, size_t size)
|
||||
* FUNCTIONS WHICH HAS KERNEL VERSION DEPENDENCY
|
||||
*************************************************************************/
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
|
||||
#if defined(CONFIG_ANDROID) && (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0))
|
||||
static int sdfat_xattr_get(const struct xattr_handler *handler,
|
||||
struct dentry *dentry, struct inode *inode,
|
||||
const char *name, void *buffer, size_t size,
|
||||
int flags)
|
||||
{
|
||||
return __sdfat_getxattr(name, buffer, size);
|
||||
}
|
||||
#else
|
||||
static int sdfat_xattr_get(const struct xattr_handler *handler,
|
||||
struct dentry *dentry, struct inode *inode,
|
||||
const char *name, void *buffer, size_t size)
|
||||
{
|
||||
return __sdfat_getxattr(name, buffer, size);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int sdfat_xattr_set(const struct xattr_handler *handler,
|
||||
struct dentry *dentry, struct inode *inode,
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
#ifndef __MAX17050_FUELGAUGE_H
|
||||
#define __MAX17050_FUELGAUGE_H __FILE__
|
||||
|
||||
#if defined(ANDROID_ALARM_ACTIVATED)
|
||||
#include <linux/android_alarm.h>
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MACH_LT03SKT) || defined(CONFIG_MACH_LT03KTT) || \
|
||||
defined(CONFIG_MACH_LT03LGT) || defined(CONFIG_MACH_MONDRIAN)
|
||||
|
||||
@@ -42,6 +42,14 @@ struct sec_battery_extcon_cable{
|
||||
|
||||
#define TEMP_HIGHLIMIT_DEFAULT 2000
|
||||
|
||||
#if defined(CONFIG_CHARGING_VZWCONCEPT)
|
||||
#define STORE_MODE_CHARGING_MAX 35
|
||||
#define STORE_MODE_CHARGING_MIN 30
|
||||
#else
|
||||
#define STORE_MODE_CHARGING_MAX 70
|
||||
#define STORE_MODE_CHARGING_MIN 60
|
||||
#endif
|
||||
|
||||
struct adc_sample_info {
|
||||
unsigned int cnt;
|
||||
int total_adc;
|
||||
|
||||
@@ -1096,6 +1096,7 @@ struct file_handle {
|
||||
};
|
||||
|
||||
#define get_file(x) atomic_long_inc(&(x)->f_count)
|
||||
#define get_file_rcu(x) atomic_long_inc_not_zero(&(x)->f_count)
|
||||
#define fput_atomic(x) atomic_long_add_unless(&(x)->f_count, -1, 1)
|
||||
#define file_count(x) atomic_long_read(&(x)->f_count)
|
||||
|
||||
|
||||
+29
-13
@@ -771,34 +771,49 @@ const struct hid_device_id *hid_match_id(struct hid_device *hdev,
|
||||
* @max: maximal valid usage->code to consider later (out parameter)
|
||||
* @type: input event type (EV_KEY, EV_REL, ...)
|
||||
* @c: code which corresponds to this usage and type
|
||||
*
|
||||
* The value pointed to by @bit will be set to NULL if either @type is
|
||||
* an unhandled event type, or if @c is out of range for @type. This
|
||||
* can be used as an error condition.
|
||||
*/
|
||||
static inline void hid_map_usage(struct hid_input *hidinput,
|
||||
struct hid_usage *usage, unsigned long **bit, int *max,
|
||||
__u8 type, __u16 c)
|
||||
__u8 type, unsigned int c)
|
||||
{
|
||||
struct input_dev *input = hidinput->input;
|
||||
|
||||
usage->type = type;
|
||||
usage->code = c;
|
||||
unsigned long *bmap = NULL;
|
||||
unsigned int limit = 0;
|
||||
|
||||
switch (type) {
|
||||
case EV_ABS:
|
||||
*bit = input->absbit;
|
||||
*max = ABS_MAX;
|
||||
bmap = input->absbit;
|
||||
limit = ABS_MAX;
|
||||
break;
|
||||
case EV_REL:
|
||||
*bit = input->relbit;
|
||||
*max = REL_MAX;
|
||||
bmap = input->relbit;
|
||||
limit = REL_MAX;
|
||||
break;
|
||||
case EV_KEY:
|
||||
*bit = input->keybit;
|
||||
*max = KEY_MAX;
|
||||
bmap = input->keybit;
|
||||
limit = KEY_MAX;
|
||||
break;
|
||||
case EV_LED:
|
||||
*bit = input->ledbit;
|
||||
*max = LED_MAX;
|
||||
bmap = input->ledbit;
|
||||
limit = LED_MAX;
|
||||
break;
|
||||
}
|
||||
|
||||
if (unlikely(c > limit || !bmap)) {
|
||||
pr_warn_ratelimited("%s: Invalid code %d type %d\n",
|
||||
input->name, c, type);
|
||||
*bit = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
usage->type = type;
|
||||
usage->code = c;
|
||||
*max = limit;
|
||||
*bit = bmap;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -812,7 +827,8 @@ static inline void hid_map_usage_clear(struct hid_input *hidinput,
|
||||
__u8 type, __u16 c)
|
||||
{
|
||||
hid_map_usage(hidinput, usage, bit, max, type, c);
|
||||
clear_bit(c, *bit);
|
||||
if (*bit)
|
||||
clear_bit(usage->code, *bit);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -438,12 +438,6 @@ extern void hrtimer_run_pending(void);
|
||||
/* Bootup initialization: */
|
||||
extern void __init hrtimers_init(void);
|
||||
|
||||
#if BITS_PER_LONG < 64
|
||||
extern u64 ktime_divns(const ktime_t kt, s64 div);
|
||||
#else /* BITS_PER_LONG < 64 */
|
||||
# define ktime_divns(kt, div) (u64)((kt).tv64 / (div))
|
||||
#endif
|
||||
|
||||
/* Show pending timers: */
|
||||
extern void sysrq_timer_list_show(void);
|
||||
|
||||
|
||||
+33
-4
@@ -301,16 +301,45 @@ static inline int ktime_compare(const ktime_t cmp1, const ktime_t cmp2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if BITS_PER_LONG < 64
|
||||
extern s64 __ktime_divns(const ktime_t kt, s64 div);
|
||||
static inline s64 ktime_divns(const ktime_t kt, s64 div)
|
||||
{
|
||||
/*
|
||||
* Negative divisors could cause an inf loop,
|
||||
* so bug out here.
|
||||
*/
|
||||
BUG_ON(div < 0);
|
||||
if (__builtin_constant_p(div) && !(div >> 32)) {
|
||||
s64 ns = kt.tv64;
|
||||
u64 tmp = ns < 0 ? -ns : ns;
|
||||
|
||||
do_div(tmp, div);
|
||||
return ns < 0 ? -tmp : tmp;
|
||||
} else {
|
||||
return __ktime_divns(kt, div);
|
||||
}
|
||||
}
|
||||
#else /* BITS_PER_LONG < 64 */
|
||||
static inline s64 ktime_divns(const ktime_t kt, s64 div)
|
||||
{
|
||||
/*
|
||||
* 32-bit implementation cannot handle negative divisors,
|
||||
* so catch them on 64bit as well.
|
||||
*/
|
||||
WARN_ON(div < 0);
|
||||
return kt.tv64 / div;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline s64 ktime_to_us(const ktime_t kt)
|
||||
{
|
||||
struct timeval tv = ktime_to_timeval(kt);
|
||||
return (s64) tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
|
||||
return ktime_divns(kt, NSEC_PER_USEC);
|
||||
}
|
||||
|
||||
static inline s64 ktime_to_ms(const ktime_t kt)
|
||||
{
|
||||
struct timeval tv = ktime_to_timeval(kt);
|
||||
return (s64) tv.tv_sec * MSEC_PER_SEC + tv.tv_usec / USEC_PER_MSEC;
|
||||
return ktime_divns(kt, NSEC_PER_MSEC);
|
||||
}
|
||||
|
||||
static inline s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
|
||||
|
||||
@@ -382,7 +382,7 @@ struct mm_struct {
|
||||
#endif
|
||||
|
||||
/* store ref to file /proc/<pid>/exe symlink points to */
|
||||
struct file *exe_file;
|
||||
struct file __rcu *exe_file;
|
||||
unsigned long num_exe_file_vmas;
|
||||
#ifdef CONFIG_MMU_NOTIFIER
|
||||
struct mmu_notifier_mm *mmu_notifier_mm;
|
||||
|
||||
+4
-2
@@ -107,12 +107,14 @@ struct shmid_kernel /* private to the kernel */
|
||||
#define SHM_NORESERVE 010000 /* don't check for reservations */
|
||||
|
||||
#ifdef CONFIG_SYSVIPC
|
||||
long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr);
|
||||
long do_shmat(int shmid, char __user *shmaddr, int shmflg, unsigned long *addr,
|
||||
unsigned long shmlba);
|
||||
extern int is_file_shm_hugepages(struct file *file);
|
||||
extern void exit_shm(struct task_struct *task);
|
||||
#else
|
||||
static inline long do_shmat(int shmid, char __user *shmaddr,
|
||||
int shmflg, unsigned long *addr)
|
||||
int shmflg, unsigned long *addr,
|
||||
unsigned long shmlba)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
+3
-1
@@ -89,7 +89,8 @@ static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
|
||||
__u32 mark, __u8 tos, __u8 scope,
|
||||
__u8 proto, __u8 flags,
|
||||
__be32 daddr, __be32 saddr,
|
||||
__be16 dport, __be16 sport)
|
||||
__be16 dport, __be16 sport,
|
||||
kuid_t uid)
|
||||
{
|
||||
fl4->flowi4_oif = oif;
|
||||
fl4->flowi4_iif = LOOPBACK_IFINDEX;
|
||||
@@ -99,6 +100,7 @@ static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
|
||||
fl4->flowi4_proto = proto;
|
||||
fl4->flowi4_flags = flags;
|
||||
fl4->flowi4_secid = 0;
|
||||
fl4->flowi4_uid = uid;
|
||||
fl4->daddr = daddr;
|
||||
fl4->saddr = saddr;
|
||||
fl4->fl4_dport = dport;
|
||||
|
||||
@@ -169,6 +169,7 @@ struct ip_reply_arg {
|
||||
/* -1 if not needed */
|
||||
int bound_dev_if;
|
||||
u8 tos;
|
||||
kuid_t uid;
|
||||
};
|
||||
|
||||
#define IP_REPLY_ARG_NOSRCCHECK 1
|
||||
|
||||
@@ -136,10 +136,10 @@ extern void rt6_redirect(const struct in6_addr *dest,
|
||||
u8 *lladdr,
|
||||
int on_link);
|
||||
|
||||
extern void rt6_pmtu_discovery(const struct in6_addr *daddr,
|
||||
const struct in6_addr *saddr,
|
||||
struct net_device *dev,
|
||||
u32 pmtu);
|
||||
extern void ip6_update_pmtu(struct sk_buff *skb, struct net *net, __be32 mtu,
|
||||
int oif, u32 mark, kuid_t uid);
|
||||
extern void ip6_sk_update_pmtu(struct sk_buff *skb, struct sock *sk,
|
||||
__be32 mtu);
|
||||
|
||||
struct netlink_callback;
|
||||
|
||||
|
||||
+3
-2
@@ -146,7 +146,7 @@ static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi
|
||||
flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos,
|
||||
RT_SCOPE_UNIVERSE, proto,
|
||||
sk ? inet_sk_flowi_flags(sk) : 0,
|
||||
daddr, saddr, dport, sport);
|
||||
daddr, saddr, dport, sport, sock_net_uid(net, sk));
|
||||
if (sk)
|
||||
security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
|
||||
return ip_route_output_flow(net, fl4, sk);
|
||||
@@ -250,7 +250,8 @@ static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32
|
||||
flow_flags |= FLOWI_FLAG_CAN_SLEEP;
|
||||
|
||||
flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,
|
||||
protocol, flow_flags, dst, src, dport, sport);
|
||||
protocol, flow_flags, dst, src, dport, sport,
|
||||
sk->sk_uid);
|
||||
}
|
||||
|
||||
static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
|
||||
|
||||
+176
-187
@@ -77,6 +77,7 @@
|
||||
#include <linux/atomic.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/checksum.h>
|
||||
#include <net/tcp_states.h>
|
||||
|
||||
struct cgroup;
|
||||
struct cgroup_subsys;
|
||||
@@ -108,7 +109,7 @@ void mem_cgroup_sockets_destroy(struct cgroup *cgrp)
|
||||
#else
|
||||
/* Validate arguments and do nothing */
|
||||
static inline __printf(2, 3)
|
||||
void SOCK_DEBUG(struct sock *sk, const char *msg, ...)
|
||||
void SOCK_DEBUG(const struct sock *sk, const char *msg, ...)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
@@ -381,14 +382,15 @@ struct sock {
|
||||
void *sk_security;
|
||||
#endif
|
||||
__u32 sk_mark;
|
||||
kuid_t sk_uid;
|
||||
u32 sk_classid;
|
||||
struct cg_proto *sk_cgrp;
|
||||
void (*sk_state_change)(struct sock *sk);
|
||||
void (*sk_data_ready)(struct sock *sk, int bytes);
|
||||
void (*sk_write_space)(struct sock *sk);
|
||||
void (*sk_error_report)(struct sock *sk);
|
||||
int (*sk_backlog_rcv)(struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
int (*sk_backlog_rcv)(struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
void (*sk_destruct)(struct sock *sk);
|
||||
};
|
||||
|
||||
@@ -458,40 +460,40 @@ static inline struct sock *sk_nulls_next(const struct sock *sk)
|
||||
NULL;
|
||||
}
|
||||
|
||||
static inline int sk_unhashed(const struct sock *sk)
|
||||
static inline bool sk_unhashed(const struct sock *sk)
|
||||
{
|
||||
return hlist_unhashed(&sk->sk_node);
|
||||
}
|
||||
|
||||
static inline int sk_hashed(const struct sock *sk)
|
||||
static inline bool sk_hashed(const struct sock *sk)
|
||||
{
|
||||
return !sk_unhashed(sk);
|
||||
}
|
||||
|
||||
static __inline__ void sk_node_init(struct hlist_node *node)
|
||||
static inline void sk_node_init(struct hlist_node *node)
|
||||
{
|
||||
node->pprev = NULL;
|
||||
}
|
||||
|
||||
static __inline__ void sk_nulls_node_init(struct hlist_nulls_node *node)
|
||||
static inline void sk_nulls_node_init(struct hlist_nulls_node *node)
|
||||
{
|
||||
node->pprev = NULL;
|
||||
}
|
||||
|
||||
static __inline__ void __sk_del_node(struct sock *sk)
|
||||
static inline void __sk_del_node(struct sock *sk)
|
||||
{
|
||||
__hlist_del(&sk->sk_node);
|
||||
}
|
||||
|
||||
/* NB: equivalent to hlist_del_init_rcu */
|
||||
static __inline__ int __sk_del_node_init(struct sock *sk)
|
||||
static inline bool __sk_del_node_init(struct sock *sk)
|
||||
{
|
||||
if (sk_hashed(sk)) {
|
||||
__sk_del_node(sk);
|
||||
sk_node_init(&sk->sk_node);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Grab socket reference count. This operation is valid only
|
||||
@@ -513,9 +515,9 @@ static inline void __sock_put(struct sock *sk)
|
||||
atomic_dec(&sk->sk_refcnt);
|
||||
}
|
||||
|
||||
static __inline__ int sk_del_node_init(struct sock *sk)
|
||||
static inline bool sk_del_node_init(struct sock *sk)
|
||||
{
|
||||
int rc = __sk_del_node_init(sk);
|
||||
bool rc = __sk_del_node_init(sk);
|
||||
|
||||
if (rc) {
|
||||
/* paranoid for a while -acme */
|
||||
@@ -526,18 +528,18 @@ static __inline__ int sk_del_node_init(struct sock *sk)
|
||||
}
|
||||
#define sk_del_node_init_rcu(sk) sk_del_node_init(sk)
|
||||
|
||||
static __inline__ int __sk_nulls_del_node_init_rcu(struct sock *sk)
|
||||
static inline bool __sk_nulls_del_node_init_rcu(struct sock *sk)
|
||||
{
|
||||
if (sk_hashed(sk)) {
|
||||
hlist_nulls_del_init_rcu(&sk->sk_nulls_node);
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
static __inline__ int sk_nulls_del_node_init_rcu(struct sock *sk)
|
||||
static inline bool sk_nulls_del_node_init_rcu(struct sock *sk)
|
||||
{
|
||||
int rc = __sk_nulls_del_node_init_rcu(sk);
|
||||
bool rc = __sk_nulls_del_node_init_rcu(sk);
|
||||
|
||||
if (rc) {
|
||||
/* paranoid for a while -acme */
|
||||
@@ -547,40 +549,40 @@ static __inline__ int sk_nulls_del_node_init_rcu(struct sock *sk)
|
||||
return rc;
|
||||
}
|
||||
|
||||
static __inline__ void __sk_add_node(struct sock *sk, struct hlist_head *list)
|
||||
static inline void __sk_add_node(struct sock *sk, struct hlist_head *list)
|
||||
{
|
||||
hlist_add_head(&sk->sk_node, list);
|
||||
}
|
||||
|
||||
static __inline__ void sk_add_node(struct sock *sk, struct hlist_head *list)
|
||||
static inline void sk_add_node(struct sock *sk, struct hlist_head *list)
|
||||
{
|
||||
sock_hold(sk);
|
||||
__sk_add_node(sk, list);
|
||||
}
|
||||
|
||||
static __inline__ void sk_add_node_rcu(struct sock *sk, struct hlist_head *list)
|
||||
static inline void sk_add_node_rcu(struct sock *sk, struct hlist_head *list)
|
||||
{
|
||||
sock_hold(sk);
|
||||
hlist_add_head_rcu(&sk->sk_node, list);
|
||||
}
|
||||
|
||||
static __inline__ void __sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list)
|
||||
static inline void __sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list)
|
||||
{
|
||||
hlist_nulls_add_head_rcu(&sk->sk_nulls_node, list);
|
||||
}
|
||||
|
||||
static __inline__ void sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list)
|
||||
static inline void sk_nulls_add_node_rcu(struct sock *sk, struct hlist_nulls_head *list)
|
||||
{
|
||||
sock_hold(sk);
|
||||
__sk_nulls_add_node_rcu(sk, list);
|
||||
}
|
||||
|
||||
static __inline__ void __sk_del_bind_node(struct sock *sk)
|
||||
static inline void __sk_del_bind_node(struct sock *sk)
|
||||
{
|
||||
__hlist_del(&sk->sk_bind_node);
|
||||
}
|
||||
|
||||
static __inline__ void sk_add_bind_node(struct sock *sk,
|
||||
static inline void sk_add_bind_node(struct sock *sk,
|
||||
struct hlist_head *list)
|
||||
{
|
||||
hlist_add_head(&sk->sk_bind_node, list);
|
||||
@@ -669,7 +671,7 @@ static inline void sk_acceptq_added(struct sock *sk)
|
||||
sk->sk_ack_backlog++;
|
||||
}
|
||||
|
||||
static inline int sk_acceptq_is_full(struct sock *sk)
|
||||
static inline bool sk_acceptq_is_full(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_ack_backlog > sk->sk_max_ack_backlog;
|
||||
}
|
||||
@@ -677,19 +679,19 @@ static inline int sk_acceptq_is_full(struct sock *sk)
|
||||
/*
|
||||
* Compute minimal free write space needed to queue new packets.
|
||||
*/
|
||||
static inline int sk_stream_min_wspace(struct sock *sk)
|
||||
static inline int sk_stream_min_wspace(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_wmem_queued >> 1;
|
||||
}
|
||||
|
||||
static inline int sk_stream_wspace(struct sock *sk)
|
||||
static inline int sk_stream_wspace(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_sndbuf - sk->sk_wmem_queued;
|
||||
}
|
||||
|
||||
extern void sk_stream_write_space(struct sock *sk);
|
||||
void sk_stream_write_space(struct sock *sk);
|
||||
|
||||
static inline int sk_stream_memory_free(struct sock *sk)
|
||||
static inline bool sk_stream_memory_free(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_wmem_queued < sk->sk_sndbuf;
|
||||
}
|
||||
@@ -792,13 +794,13 @@ static inline void sock_rps_reset_rxhash(struct sock *sk)
|
||||
__rc; \
|
||||
})
|
||||
|
||||
extern int sk_stream_wait_connect(struct sock *sk, long *timeo_p);
|
||||
extern int sk_stream_wait_memory(struct sock *sk, long *timeo_p);
|
||||
extern void sk_stream_wait_close(struct sock *sk, long timeo_p);
|
||||
extern int sk_stream_error(struct sock *sk, int flags, int err);
|
||||
extern void sk_stream_kill_queues(struct sock *sk);
|
||||
int sk_stream_wait_connect(struct sock *sk, long *timeo_p);
|
||||
int sk_stream_wait_memory(struct sock *sk, long *timeo_p);
|
||||
void sk_stream_wait_close(struct sock *sk, long timeo_p);
|
||||
int sk_stream_error(struct sock *sk, int flags, int err);
|
||||
void sk_stream_kill_queues(struct sock *sk);
|
||||
|
||||
extern int sk_wait_data(struct sock *sk, long *timeo);
|
||||
int sk_wait_data(struct sock *sk, long *timeo, const struct sk_buff *skb);
|
||||
|
||||
struct request_sock_ops;
|
||||
struct timewait_sock_ops;
|
||||
@@ -823,26 +825,26 @@ static inline void sk_prot_clear_nulls(struct sock *sk, int size)
|
||||
* transport -> network interface is defined by struct inet_proto
|
||||
*/
|
||||
struct proto {
|
||||
void (*close)(struct sock *sk,
|
||||
void (*close)(struct sock *sk,
|
||||
long timeout);
|
||||
int (*connect)(struct sock *sk,
|
||||
struct sockaddr *uaddr,
|
||||
struct sockaddr *uaddr,
|
||||
int addr_len);
|
||||
int (*disconnect)(struct sock *sk, int flags);
|
||||
|
||||
struct sock * (*accept) (struct sock *sk, int flags, int *err);
|
||||
struct sock * (*accept)(struct sock *sk, int flags, int *err);
|
||||
|
||||
int (*ioctl)(struct sock *sk, int cmd,
|
||||
unsigned long arg);
|
||||
int (*init)(struct sock *sk);
|
||||
void (*destroy)(struct sock *sk);
|
||||
void (*shutdown)(struct sock *sk, int how);
|
||||
int (*setsockopt)(struct sock *sk, int level,
|
||||
int (*setsockopt)(struct sock *sk, int level,
|
||||
int optname, char __user *optval,
|
||||
unsigned int optlen);
|
||||
int (*getsockopt)(struct sock *sk, int level,
|
||||
int optname, char __user *optval,
|
||||
int __user *option);
|
||||
int (*getsockopt)(struct sock *sk, int level,
|
||||
int optname, char __user *optval,
|
||||
int __user *option);
|
||||
#ifdef CONFIG_COMPAT
|
||||
int (*compat_setsockopt)(struct sock *sk,
|
||||
int level,
|
||||
@@ -859,14 +861,14 @@ struct proto {
|
||||
struct msghdr *msg, size_t len);
|
||||
int (*recvmsg)(struct kiocb *iocb, struct sock *sk,
|
||||
struct msghdr *msg,
|
||||
size_t len, int noblock, int flags,
|
||||
int *addr_len);
|
||||
size_t len, int noblock, int flags,
|
||||
int *addr_len);
|
||||
int (*sendpage)(struct sock *sk, struct page *page,
|
||||
int offset, size_t size, int flags);
|
||||
int (*bind)(struct sock *sk,
|
||||
int (*bind)(struct sock *sk,
|
||||
struct sockaddr *uaddr, int addr_len);
|
||||
|
||||
int (*backlog_rcv) (struct sock *sk,
|
||||
int (*backlog_rcv) (struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
|
||||
/* Keeping track of sk's, looking them up, and port selection methods. */
|
||||
@@ -954,8 +956,8 @@ struct cg_proto {
|
||||
struct mem_cgroup *memcg;
|
||||
};
|
||||
|
||||
extern int proto_register(struct proto *prot, int alloc_slab);
|
||||
extern void proto_unregister(struct proto *prot);
|
||||
int proto_register(struct proto *prot, int alloc_slab);
|
||||
void proto_unregister(struct proto *prot);
|
||||
|
||||
#ifdef SOCK_REFCNT_DEBUG
|
||||
static inline void sk_refcnt_debug_inc(struct sock *sk)
|
||||
@@ -1185,10 +1187,10 @@ proto_memory_pressure(struct proto *prot)
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
/* Called with local bh disabled */
|
||||
extern void sock_prot_inuse_add(struct net *net, struct proto *prot, int inc);
|
||||
extern int sock_prot_inuse_get(struct net *net, struct proto *proto);
|
||||
void sock_prot_inuse_add(struct net *net, struct proto *prot, int inc);
|
||||
int sock_prot_inuse_get(struct net *net, struct proto *proto);
|
||||
#else
|
||||
static void inline sock_prot_inuse_add(struct net *net, struct proto *prot,
|
||||
static inline void sock_prot_inuse_add(struct net *net, struct proto *prot,
|
||||
int inc)
|
||||
{
|
||||
}
|
||||
@@ -1262,8 +1264,8 @@ static inline struct inode *SOCK_INODE(struct socket *socket)
|
||||
/*
|
||||
* Functions for memory accounting
|
||||
*/
|
||||
extern int __sk_mem_schedule(struct sock *sk, int size, int kind);
|
||||
extern void __sk_mem_reclaim(struct sock *sk);
|
||||
int __sk_mem_schedule(struct sock *sk, int size, int kind);
|
||||
void __sk_mem_reclaim(struct sock *sk);
|
||||
|
||||
#define SK_MEM_QUANTUM ((int)PAGE_SIZE)
|
||||
#define SK_MEM_QUANTUM_SHIFT ilog2(SK_MEM_QUANTUM)
|
||||
@@ -1275,24 +1277,24 @@ static inline int sk_mem_pages(int amt)
|
||||
return (amt + SK_MEM_QUANTUM - 1) >> SK_MEM_QUANTUM_SHIFT;
|
||||
}
|
||||
|
||||
static inline int sk_has_account(struct sock *sk)
|
||||
static inline bool sk_has_account(struct sock *sk)
|
||||
{
|
||||
/* return true if protocol supports memory accounting */
|
||||
return !!sk->sk_prot->memory_allocated;
|
||||
}
|
||||
|
||||
static inline int sk_wmem_schedule(struct sock *sk, int size)
|
||||
static inline bool sk_wmem_schedule(struct sock *sk, int size)
|
||||
{
|
||||
if (!sk_has_account(sk))
|
||||
return 1;
|
||||
return true;
|
||||
return size <= sk->sk_forward_alloc ||
|
||||
__sk_mem_schedule(sk, size, SK_MEM_SEND);
|
||||
}
|
||||
|
||||
static inline int sk_rmem_schedule(struct sock *sk, int size)
|
||||
static inline bool sk_rmem_schedule(struct sock *sk, int size)
|
||||
{
|
||||
if (!sk_has_account(sk))
|
||||
return 1;
|
||||
return true;
|
||||
return size <= sk->sk_forward_alloc ||
|
||||
__sk_mem_schedule(sk, size, SK_MEM_RECV);
|
||||
}
|
||||
@@ -1357,7 +1359,7 @@ static inline void sk_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
|
||||
* Mark both the sk_lock and the sk_lock.slock as a
|
||||
* per-address-family lock class.
|
||||
*/
|
||||
#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \
|
||||
#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \
|
||||
do { \
|
||||
sk->sk_lock.owned = 0; \
|
||||
init_waitqueue_head(&sk->sk_lock.wq); \
|
||||
@@ -1365,18 +1367,18 @@ do { \
|
||||
debug_check_no_locks_freed((void *)&(sk)->sk_lock, \
|
||||
sizeof((sk)->sk_lock)); \
|
||||
lockdep_set_class_and_name(&(sk)->sk_lock.slock, \
|
||||
(skey), (sname)); \
|
||||
(skey), (sname)); \
|
||||
lockdep_init_map(&(sk)->sk_lock.dep_map, (name), (key), 0); \
|
||||
} while (0)
|
||||
|
||||
extern void lock_sock_nested(struct sock *sk, int subclass);
|
||||
void lock_sock_nested(struct sock *sk, int subclass);
|
||||
|
||||
static inline void lock_sock(struct sock *sk)
|
||||
{
|
||||
lock_sock_nested(sk, 0);
|
||||
}
|
||||
|
||||
extern void release_sock(struct sock *sk);
|
||||
void release_sock(struct sock *sk);
|
||||
|
||||
/* BH context may only use the following locking interface. */
|
||||
#define bh_lock_sock(__sk) spin_lock(&((__sk)->sk_lock.slock))
|
||||
@@ -1385,7 +1387,7 @@ extern void release_sock(struct sock *sk);
|
||||
SINGLE_DEPTH_NESTING)
|
||||
#define bh_unlock_sock(__sk) spin_unlock(&((__sk)->sk_lock.slock))
|
||||
|
||||
extern bool lock_sock_fast(struct sock *sk);
|
||||
bool lock_sock_fast(struct sock *sk);
|
||||
/**
|
||||
* unlock_sock_fast - complement of lock_sock_fast
|
||||
* @sk: socket
|
||||
@@ -1403,46 +1405,35 @@ static inline void unlock_sock_fast(struct sock *sk, bool slow)
|
||||
}
|
||||
|
||||
|
||||
extern struct sock *sk_alloc(struct net *net, int family,
|
||||
gfp_t priority,
|
||||
struct proto *prot);
|
||||
extern void sk_free(struct sock *sk);
|
||||
extern void sk_release_kernel(struct sock *sk);
|
||||
extern struct sock *sk_clone_lock(const struct sock *sk,
|
||||
const gfp_t priority);
|
||||
struct sock *sk_alloc(struct net *net, int family, gfp_t priority,
|
||||
struct proto *prot);
|
||||
void sk_free(struct sock *sk);
|
||||
void sk_release_kernel(struct sock *sk);
|
||||
struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority);
|
||||
|
||||
extern struct sk_buff *sock_wmalloc(struct sock *sk,
|
||||
unsigned long size, int force,
|
||||
gfp_t priority);
|
||||
extern struct sk_buff *sock_rmalloc(struct sock *sk,
|
||||
unsigned long size, int force,
|
||||
gfp_t priority);
|
||||
extern void sock_wfree(struct sk_buff *skb);
|
||||
extern void sock_rfree(struct sk_buff *skb);
|
||||
struct sk_buff *sock_wmalloc(struct sock *sk, unsigned long size, int force,
|
||||
gfp_t priority);
|
||||
struct sk_buff *sock_rmalloc(struct sock *sk, unsigned long size, int force,
|
||||
gfp_t priority);
|
||||
void sock_wfree(struct sk_buff *skb);
|
||||
void sock_rfree(struct sk_buff *skb);
|
||||
|
||||
extern int sock_setsockopt(struct socket *sock, int level,
|
||||
int op, char __user *optval,
|
||||
unsigned int optlen);
|
||||
int sock_setsockopt(struct socket *sock, int level, int op,
|
||||
char __user *optval, unsigned int optlen);
|
||||
|
||||
extern int sock_getsockopt(struct socket *sock, int level,
|
||||
int op, char __user *optval,
|
||||
int __user *optlen);
|
||||
extern struct sk_buff *sock_alloc_send_skb(struct sock *sk,
|
||||
unsigned long size,
|
||||
int noblock,
|
||||
int *errcode);
|
||||
extern struct sk_buff *sock_alloc_send_pskb(struct sock *sk,
|
||||
unsigned long header_len,
|
||||
unsigned long data_len,
|
||||
int noblock,
|
||||
int *errcode);
|
||||
extern void *sock_kmalloc(struct sock *sk, int size,
|
||||
gfp_t priority);
|
||||
extern void sock_kfree_s(struct sock *sk, void *mem, int size);
|
||||
extern void sk_send_sigurg(struct sock *sk);
|
||||
int sock_getsockopt(struct socket *sock, int level, int op,
|
||||
char __user *optval, int __user *optlen);
|
||||
struct sk_buff *sock_alloc_send_skb(struct sock *sk, unsigned long size,
|
||||
int noblock, int *errcode);
|
||||
struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,
|
||||
unsigned long data_len, int noblock,
|
||||
int *errcode);
|
||||
void *sock_kmalloc(struct sock *sk, int size, gfp_t priority);
|
||||
void sock_kfree_s(struct sock *sk, void *mem, int size);
|
||||
void sk_send_sigurg(struct sock *sk);
|
||||
|
||||
#ifdef CONFIG_CGROUPS
|
||||
extern void sock_update_classid(struct sock *sk);
|
||||
void sock_update_classid(struct sock *sk);
|
||||
#else
|
||||
static inline void sock_update_classid(struct sock *sk)
|
||||
{
|
||||
@@ -1453,63 +1444,51 @@ static inline void sock_update_classid(struct sock *sk)
|
||||
* Functions to fill in entries in struct proto_ops when a protocol
|
||||
* does not implement a particular function.
|
||||
*/
|
||||
extern int sock_no_bind(struct socket *,
|
||||
struct sockaddr *, int);
|
||||
extern int sock_no_connect(struct socket *,
|
||||
struct sockaddr *, int, int);
|
||||
extern int sock_no_socketpair(struct socket *,
|
||||
struct socket *);
|
||||
extern int sock_no_accept(struct socket *,
|
||||
struct socket *, int);
|
||||
extern int sock_no_getname(struct socket *,
|
||||
struct sockaddr *, int *, int);
|
||||
extern unsigned int sock_no_poll(struct file *, struct socket *,
|
||||
struct poll_table_struct *);
|
||||
extern int sock_no_ioctl(struct socket *, unsigned int,
|
||||
unsigned long);
|
||||
extern int sock_no_listen(struct socket *, int);
|
||||
extern int sock_no_shutdown(struct socket *, int);
|
||||
extern int sock_no_getsockopt(struct socket *, int , int,
|
||||
char __user *, int __user *);
|
||||
extern int sock_no_setsockopt(struct socket *, int, int,
|
||||
char __user *, unsigned int);
|
||||
extern int sock_no_sendmsg(struct kiocb *, struct socket *,
|
||||
struct msghdr *, size_t);
|
||||
extern int sock_no_recvmsg(struct kiocb *, struct socket *,
|
||||
struct msghdr *, size_t, int);
|
||||
extern int sock_no_mmap(struct file *file,
|
||||
struct socket *sock,
|
||||
struct vm_area_struct *vma);
|
||||
extern ssize_t sock_no_sendpage(struct socket *sock,
|
||||
struct page *page,
|
||||
int offset, size_t size,
|
||||
int flags);
|
||||
int sock_no_bind(struct socket *, struct sockaddr *, int);
|
||||
int sock_no_connect(struct socket *, struct sockaddr *, int, int);
|
||||
int sock_no_socketpair(struct socket *, struct socket *);
|
||||
int sock_no_accept(struct socket *, struct socket *, int);
|
||||
int sock_no_getname(struct socket *, struct sockaddr *, int *, int);
|
||||
unsigned int sock_no_poll(struct file *, struct socket *,
|
||||
struct poll_table_struct *);
|
||||
int sock_no_ioctl(struct socket *, unsigned int, unsigned long);
|
||||
int sock_no_listen(struct socket *, int);
|
||||
int sock_no_shutdown(struct socket *, int);
|
||||
int sock_no_getsockopt(struct socket *, int , int, char __user *, int __user *);
|
||||
int sock_no_setsockopt(struct socket *, int, int, char __user *, unsigned int);
|
||||
int sock_no_sendmsg(struct kiocb *, struct socket *, struct msghdr *, size_t);
|
||||
int sock_no_recvmsg(struct kiocb *, struct socket *, struct msghdr *, size_t,
|
||||
int);
|
||||
int sock_no_mmap(struct file *file, struct socket *sock,
|
||||
struct vm_area_struct *vma);
|
||||
ssize_t sock_no_sendpage(struct socket *sock, struct page *page, int offset,
|
||||
size_t size, int flags);
|
||||
|
||||
/*
|
||||
* Functions to fill in entries in struct proto_ops when a protocol
|
||||
* uses the inet style.
|
||||
*/
|
||||
extern int sock_common_getsockopt(struct socket *sock, int level, int optname,
|
||||
int sock_common_getsockopt(struct socket *sock, int level, int optname,
|
||||
char __user *optval, int __user *optlen);
|
||||
extern int sock_common_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
int sock_common_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
struct msghdr *msg, size_t size, int flags);
|
||||
extern int sock_common_setsockopt(struct socket *sock, int level, int optname,
|
||||
int sock_common_setsockopt(struct socket *sock, int level, int optname,
|
||||
char __user *optval, unsigned int optlen);
|
||||
extern int compat_sock_common_getsockopt(struct socket *sock, int level,
|
||||
int compat_sock_common_getsockopt(struct socket *sock, int level,
|
||||
int optname, char __user *optval, int __user *optlen);
|
||||
extern int compat_sock_common_setsockopt(struct socket *sock, int level,
|
||||
int compat_sock_common_setsockopt(struct socket *sock, int level,
|
||||
int optname, char __user *optval, unsigned int optlen);
|
||||
|
||||
extern void sk_common_release(struct sock *sk);
|
||||
void sk_common_release(struct sock *sk);
|
||||
|
||||
/*
|
||||
* Default socket callbacks and setup code
|
||||
*/
|
||||
|
||||
/* Initialise core socket variables */
|
||||
extern void sock_init_data(struct socket *sock, struct sock *sk);
|
||||
|
||||
extern void sk_filter_release_rcu(struct rcu_head *rcu);
|
||||
/* Initialise core socket variables */
|
||||
void sock_init_data(struct socket *sock, struct sock *sk);
|
||||
|
||||
void sk_filter_release_rcu(struct rcu_head *rcu);
|
||||
|
||||
/**
|
||||
* sk_filter_release - release a socket filter
|
||||
@@ -1570,8 +1549,7 @@ static inline void sock_put(struct sock *sk)
|
||||
sk_free(sk);
|
||||
}
|
||||
|
||||
extern int sk_receive_skb(struct sock *sk, struct sk_buff *skb,
|
||||
const int nested);
|
||||
int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested);
|
||||
|
||||
static inline void sk_tx_queue_set(struct sock *sk, int tx_queue)
|
||||
{
|
||||
@@ -1621,12 +1599,18 @@ static inline void sock_graft(struct sock *sk, struct socket *parent)
|
||||
sk->sk_wq = parent->wq;
|
||||
parent->sk = sk;
|
||||
sk_set_socket(sk, parent);
|
||||
sk->sk_uid = SOCK_INODE(parent)->i_uid;
|
||||
security_sock_graft(sk, parent);
|
||||
write_unlock_bh(&sk->sk_callback_lock);
|
||||
}
|
||||
|
||||
extern int sock_i_uid(struct sock *sk);
|
||||
extern unsigned long sock_i_ino(struct sock *sk);
|
||||
int sock_i_uid(struct sock *sk);
|
||||
unsigned long sock_i_ino(struct sock *sk);
|
||||
|
||||
static inline kuid_t sock_net_uid(const struct net *net, const struct sock *sk)
|
||||
{
|
||||
return sk ? sk->sk_uid : make_kuid(net->user_ns, 0);
|
||||
}
|
||||
|
||||
static inline struct dst_entry *
|
||||
__sk_dst_get(struct sock *sk)
|
||||
@@ -1648,7 +1632,7 @@ sk_dst_get(struct sock *sk)
|
||||
return dst;
|
||||
}
|
||||
|
||||
extern void sk_reset_txq(struct sock *sk);
|
||||
void sk_reset_txq(struct sock *sk);
|
||||
|
||||
static inline void dst_negative_advice(struct sock *sk)
|
||||
{
|
||||
@@ -1701,16 +1685,16 @@ sk_dst_reset(struct sock *sk)
|
||||
spin_unlock(&sk->sk_dst_lock);
|
||||
}
|
||||
|
||||
extern struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie);
|
||||
struct dst_entry *__sk_dst_check(struct sock *sk, u32 cookie);
|
||||
|
||||
extern struct dst_entry *sk_dst_check(struct sock *sk, u32 cookie);
|
||||
struct dst_entry *sk_dst_check(struct sock *sk, u32 cookie);
|
||||
|
||||
static inline int sk_can_gso(const struct sock *sk)
|
||||
static inline bool sk_can_gso(const struct sock *sk)
|
||||
{
|
||||
return net_gso_ok(sk->sk_route_caps, sk->sk_gso_type);
|
||||
}
|
||||
|
||||
extern void sk_setup_caps(struct sock *sk, struct dst_entry *dst);
|
||||
void sk_setup_caps(struct sock *sk, struct dst_entry *dst);
|
||||
|
||||
static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
|
||||
{
|
||||
@@ -1822,7 +1806,7 @@ static inline int sk_rmem_alloc_get(const struct sock *sk)
|
||||
*
|
||||
* Returns true if socket has write or read allocations
|
||||
*/
|
||||
static inline int sk_has_allocations(const struct sock *sk)
|
||||
static inline bool sk_has_allocations(const struct sock *sk)
|
||||
{
|
||||
return sk_wmem_alloc_get(sk) || sk_rmem_alloc_get(sk);
|
||||
}
|
||||
@@ -1861,9 +1845,7 @@ static inline int sk_has_allocations(const struct sock *sk)
|
||||
*/
|
||||
static inline bool wq_has_sleeper(struct socket_wq *wq)
|
||||
{
|
||||
|
||||
/*
|
||||
* We need to be sure we are in sync with the
|
||||
/* We need to be sure we are in sync with the
|
||||
* add_wait_queue modifications to the wait queue.
|
||||
*
|
||||
* This memory barrier is paired in the sock_poll_wait.
|
||||
@@ -1885,22 +1867,21 @@ static inline void sock_poll_wait(struct file *filp,
|
||||
{
|
||||
if (!poll_does_not_wait(p) && wait_address) {
|
||||
poll_wait(filp, wait_address, p);
|
||||
/*
|
||||
* We need to be sure we are in sync with the
|
||||
/* We need to be sure we are in sync with the
|
||||
* socket flags modification.
|
||||
*
|
||||
* This memory barrier is paired in the wq_has_sleeper.
|
||||
*/
|
||||
*/
|
||||
smp_mb();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Queue a received datagram if it will fit. Stream and sequenced
|
||||
* Queue a received datagram if it will fit. Stream and sequenced
|
||||
* protocols can't normally use this as they need to fit buffers in
|
||||
* and play with them.
|
||||
*
|
||||
* Inlined as it's very short and called for pretty much every
|
||||
* Inlined as it's very short and called for pretty much every
|
||||
* packet ever received.
|
||||
*/
|
||||
|
||||
@@ -1926,19 +1907,19 @@ static inline void skb_set_owner_r(struct sk_buff *skb, struct sock *sk)
|
||||
sk_mem_charge(sk, skb->truesize);
|
||||
}
|
||||
|
||||
extern void sk_reset_timer(struct sock *sk, struct timer_list* timer,
|
||||
unsigned long expires);
|
||||
void sk_reset_timer(struct sock *sk, struct timer_list *timer,
|
||||
unsigned long expires);
|
||||
|
||||
extern void sk_stop_timer(struct sock *sk, struct timer_list* timer);
|
||||
void sk_stop_timer(struct sock *sk, struct timer_list *timer);
|
||||
|
||||
extern int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb);
|
||||
int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb);
|
||||
|
||||
extern int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb);
|
||||
int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb);
|
||||
|
||||
/*
|
||||
* Recover an error report and clear atomically
|
||||
*/
|
||||
|
||||
|
||||
static inline int sock_error(struct sock *sk)
|
||||
{
|
||||
int err;
|
||||
@@ -1954,7 +1935,7 @@ static inline unsigned long sock_wspace(struct sock *sk)
|
||||
|
||||
if (!(sk->sk_shutdown & SEND_SHUTDOWN)) {
|
||||
amt = sk->sk_sndbuf - atomic_read(&sk->sk_wmem_alloc);
|
||||
if (amt < 0)
|
||||
if (amt < 0)
|
||||
amt = 0;
|
||||
}
|
||||
return amt;
|
||||
@@ -1998,7 +1979,7 @@ static inline struct page *sk_stream_alloc_page(struct sock *sk)
|
||||
/*
|
||||
* Default write policy as shown to user space via poll/select/SIGIO
|
||||
*/
|
||||
static inline int sock_writeable(const struct sock *sk)
|
||||
static inline bool sock_writeable(const struct sock *sk)
|
||||
{
|
||||
return atomic_read(&sk->sk_wmem_alloc) < (sk->sk_sndbuf >> 1);
|
||||
}
|
||||
@@ -2008,12 +1989,12 @@ static inline gfp_t gfp_any(void)
|
||||
return in_softirq() ? GFP_ATOMIC : GFP_KERNEL;
|
||||
}
|
||||
|
||||
static inline long sock_rcvtimeo(const struct sock *sk, int noblock)
|
||||
static inline long sock_rcvtimeo(const struct sock *sk, bool noblock)
|
||||
{
|
||||
return noblock ? 0 : sk->sk_rcvtimeo;
|
||||
}
|
||||
|
||||
static inline long sock_sndtimeo(const struct sock *sk, int noblock)
|
||||
static inline long sock_sndtimeo(const struct sock *sk, bool noblock)
|
||||
{
|
||||
return noblock ? 0 : sk->sk_sndtimeo;
|
||||
}
|
||||
@@ -2031,12 +2012,12 @@ static inline int sock_intr_errno(long timeo)
|
||||
return timeo == MAX_SCHEDULE_TIMEOUT ? -ERESTARTSYS : -EINTR;
|
||||
}
|
||||
|
||||
extern void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
extern void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
void __sock_recv_wifi_status(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
|
||||
static __inline__ void
|
||||
static inline void
|
||||
sock_recv_timestamp(struct msghdr *msg, struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
ktime_t kt = skb->tstamp;
|
||||
@@ -2067,8 +2048,8 @@ sock_recv_timestamp(struct msghdr *msg, struct sock *sk, struct sk_buff *skb)
|
||||
__sock_recv_wifi_status(msg, sk, skb);
|
||||
}
|
||||
|
||||
extern void __sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
void __sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb);
|
||||
|
||||
static inline void sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
|
||||
struct sk_buff *skb)
|
||||
@@ -2077,7 +2058,7 @@ static inline void sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
|
||||
(1UL << SOCK_RCVTSTAMP) | \
|
||||
(1UL << SOCK_TIMESTAMPING_RX_SOFTWARE) | \
|
||||
(1UL << SOCK_TIMESTAMPING_SOFTWARE) | \
|
||||
(1UL << SOCK_TIMESTAMPING_RAW_HARDWARE) | \
|
||||
(1UL << SOCK_TIMESTAMPING_RAW_HARDWARE) | \
|
||||
(1UL << SOCK_TIMESTAMPING_SYS_HARDWARE))
|
||||
|
||||
if (sk->sk_flags & FLAGS_TS_OR_DROPS)
|
||||
@@ -2091,10 +2072,9 @@ static inline void sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
|
||||
* @sk: socket sending this packet
|
||||
* @tx_flags: filled with instructions for time stamping
|
||||
*
|
||||
* Currently only depends on SOCK_TIMESTAMPING* flags. Returns error code if
|
||||
* parameters are invalid.
|
||||
* Currently only depends on SOCK_TIMESTAMPING* flags.
|
||||
*/
|
||||
extern int sock_tx_timestamp(struct sock *sk, __u8 *tx_flags);
|
||||
void sock_tx_timestamp(struct sock *sk, __u8 *tx_flags);
|
||||
|
||||
/**
|
||||
* sk_eat_skb - Release a skb if it is no longer needed
|
||||
@@ -2106,7 +2086,7 @@ extern int sock_tx_timestamp(struct sock *sk, __u8 *tx_flags);
|
||||
* locked so that the sk_buff queue operation is ok.
|
||||
*/
|
||||
#ifdef CONFIG_NET_DMA
|
||||
static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_early)
|
||||
static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, bool copied_early)
|
||||
{
|
||||
__skb_unlink(skb, &sk->sk_receive_queue);
|
||||
if (!copied_early)
|
||||
@@ -2115,7 +2095,7 @@ static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_e
|
||||
__skb_queue_tail(&sk->sk_async_wait_queue, skb);
|
||||
}
|
||||
#else
|
||||
static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_early)
|
||||
static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, bool copied_early)
|
||||
{
|
||||
__skb_unlink(skb, &sk->sk_receive_queue);
|
||||
__kfree_skb(skb);
|
||||
@@ -2158,12 +2138,21 @@ static inline struct sock *skb_steal_sock(struct sk_buff *skb)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
extern void sock_enable_timestamp(struct sock *sk, int flag);
|
||||
extern int sock_get_timestamp(struct sock *, struct timeval __user *);
|
||||
extern int sock_get_timestampns(struct sock *, struct timespec __user *);
|
||||
/* This helper checks if a socket is a full socket,
|
||||
* ie _not_ a timewait or request socket.
|
||||
* TODO: Check for TCPF_NEW_SYN_RECV when that starts to exist.
|
||||
*/
|
||||
static inline bool sk_fullsock(const struct sock *sk)
|
||||
{
|
||||
return (1 << sk->sk_state) & ~(TCPF_TIME_WAIT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable debug/info messages
|
||||
void sock_enable_timestamp(struct sock *sk, int flag);
|
||||
int sock_get_timestamp(struct sock *, struct timeval __user *);
|
||||
int sock_get_timestampns(struct sock *, struct timespec __user *);
|
||||
|
||||
/*
|
||||
* Enable debug/info messages
|
||||
*/
|
||||
extern int net_msg_warn;
|
||||
#define NETDEBUG(fmt, args...) \
|
||||
@@ -2175,7 +2164,7 @@ extern int net_msg_warn;
|
||||
extern __u32 sysctl_wmem_max;
|
||||
extern __u32 sysctl_rmem_max;
|
||||
|
||||
extern void sk_init(void);
|
||||
void sk_init(void);
|
||||
|
||||
extern int sysctl_optmem_max;
|
||||
|
||||
|
||||
+6
-2
@@ -514,6 +514,10 @@ long compat_sys_msgctl(int first, int second, void __user *uptr)
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifndef COMPAT_SHMLBA
|
||||
#define COMPAT_SHMLBA SHMLBA
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_WANT_OLD_COMPAT_IPC
|
||||
long compat_sys_shmat(int first, int second, compat_uptr_t third, int version,
|
||||
void __user *uptr)
|
||||
@@ -524,7 +528,7 @@ long compat_sys_shmat(int first, int second, compat_uptr_t third, int version,
|
||||
|
||||
if (version == 1)
|
||||
return -EINVAL;
|
||||
err = do_shmat(first, uptr, second, &raddr);
|
||||
err = do_shmat(first, uptr, second, &raddr, COMPAT_SHMLBA);
|
||||
if (err < 0)
|
||||
return err;
|
||||
uaddr = compat_ptr(third);
|
||||
@@ -536,7 +540,7 @@ long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg)
|
||||
unsigned long ret;
|
||||
long err;
|
||||
|
||||
err = do_shmat(shmid, compat_ptr(shmaddr), shmflg, &ret);
|
||||
err = do_shmat(shmid, compat_ptr(shmaddr), shmflg, &ret, COMPAT_SHMLBA);
|
||||
if (err)
|
||||
return err;
|
||||
force_successful_syscall_return();
|
||||
|
||||
@@ -944,7 +944,8 @@ out:
|
||||
* "raddr" thing points to kernel space, and there has to be a wrapper around
|
||||
* this.
|
||||
*/
|
||||
long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
|
||||
long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
|
||||
unsigned long shmlba)
|
||||
{
|
||||
struct shmid_kernel *shp;
|
||||
unsigned long addr;
|
||||
@@ -964,14 +965,14 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
|
||||
if (shmid < 0)
|
||||
goto out;
|
||||
else if ((addr = (ulong)shmaddr)) {
|
||||
if (addr & (SHMLBA-1)) {
|
||||
if (addr & (shmlba - 1)) {
|
||||
/*
|
||||
* Round down to the nearest multiple of shmlba.
|
||||
* For sane do_mmap_pgoff() parameters, avoid
|
||||
* round downs that trigger nil-page and MAP_FIXED.
|
||||
*/
|
||||
if ((shmflg & SHM_RND) && addr >= SHMLBA)
|
||||
addr &= ~(SHMLBA - 1);
|
||||
if ((shmflg & SHM_RND) && addr >= shmlba)
|
||||
addr &= ~(shmlba - 1);
|
||||
else
|
||||
#ifndef __ARCH_FORCE_SHMLBA
|
||||
if (addr & ~PAGE_MASK)
|
||||
@@ -1098,7 +1099,7 @@ SYSCALL_DEFINE3(shmat, int, shmid, char __user *, shmaddr, int, shmflg)
|
||||
unsigned long ret;
|
||||
long err;
|
||||
|
||||
err = do_shmat(shmid, shmaddr, shmflg, &ret);
|
||||
err = do_shmat(shmid, shmaddr, shmflg, &ret, SHMLBA);
|
||||
if (err)
|
||||
return err;
|
||||
force_successful_syscall_return();
|
||||
|
||||
+1
-1
@@ -73,7 +73,7 @@ SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second,
|
||||
default: {
|
||||
unsigned long raddr;
|
||||
ret = do_shmat(first, (char __user *)ptr,
|
||||
second, &raddr);
|
||||
second, &raddr, SHMLBA);
|
||||
if (ret)
|
||||
return ret;
|
||||
return put_user(raddr, (unsigned long __user *) third);
|
||||
|
||||
+37
-20
@@ -354,6 +354,9 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
|
||||
*/
|
||||
down_write_nested(&mm->mmap_sem, SINGLE_DEPTH_NESTING);
|
||||
|
||||
/* No ordering required: file already has been exposed. */
|
||||
RCU_INIT_POINTER(mm->exe_file, get_mm_exe_file(oldmm));
|
||||
|
||||
mm->locked_vm = 0;
|
||||
mm->mmap = NULL;
|
||||
mm->mmap_cache = NULL;
|
||||
@@ -484,7 +487,13 @@ static inline void mm_free_pgd(struct mm_struct *mm)
|
||||
pgd_free(mm, mm->pgd);
|
||||
}
|
||||
#else
|
||||
#define dup_mmap(mm, oldmm) (0)
|
||||
static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
|
||||
{
|
||||
down_write(&oldmm->mmap_sem);
|
||||
RCU_INIT_POINTER(mm->exe_file, get_mm_exe_file(oldmm));
|
||||
up_write(&oldmm->mmap_sem);
|
||||
return 0;
|
||||
}
|
||||
#define mm_alloc_pgd(mm) (0)
|
||||
#define mm_free_pgd(mm)
|
||||
#endif /* CONFIG_MMU */
|
||||
@@ -640,37 +649,47 @@ void removed_exe_file_vma(struct mm_struct *mm)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* set_mm_exe_file - change a reference to the mm's executable file
|
||||
*
|
||||
* This changes mm's executable file (shown as symlink /proc/[pid]/exe).
|
||||
*
|
||||
* Main users are mmput(), sys_execve() and sys_prctl(PR_SET_MM_MAP/EXE_FILE).
|
||||
* Callers prevent concurrent invocations: in mmput() nobody alive left,
|
||||
* in execve task is single-threaded, prctl holds mmap_sem exclusively.
|
||||
*/
|
||||
void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file)
|
||||
{
|
||||
struct file *old_exe_file = rcu_dereference_protected(mm->exe_file,
|
||||
!atomic_read(&mm->mm_users) || current->in_execve ||
|
||||
lockdep_is_held(&mm->mmap_sem));
|
||||
|
||||
if (new_exe_file)
|
||||
get_file(new_exe_file);
|
||||
if (mm->exe_file)
|
||||
fput(mm->exe_file);
|
||||
mm->exe_file = new_exe_file;
|
||||
rcu_assign_pointer(mm->exe_file, new_exe_file);
|
||||
if (old_exe_file)
|
||||
fput(old_exe_file);
|
||||
mm->num_exe_file_vmas = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_mm_exe_file - acquire a reference to the mm's executable file
|
||||
*
|
||||
* Returns %NULL if mm has no associated executable file.
|
||||
* User must release file via fput().
|
||||
*/
|
||||
struct file *get_mm_exe_file(struct mm_struct *mm)
|
||||
{
|
||||
struct file *exe_file;
|
||||
|
||||
/* We need mmap_sem to protect against races with removal of
|
||||
* VM_EXECUTABLE vmas */
|
||||
down_read(&mm->mmap_sem);
|
||||
exe_file = mm->exe_file;
|
||||
if (exe_file)
|
||||
get_file(exe_file);
|
||||
up_read(&mm->mmap_sem);
|
||||
rcu_read_lock();
|
||||
exe_file = rcu_dereference(mm->exe_file);
|
||||
if (exe_file && !get_file_rcu(exe_file))
|
||||
exe_file = NULL;
|
||||
rcu_read_unlock();
|
||||
return exe_file;
|
||||
}
|
||||
|
||||
static void dup_mm_exe_file(struct mm_struct *oldmm, struct mm_struct *newmm)
|
||||
{
|
||||
/* It's safe to write the exe_file pointer without exe_file_lock because
|
||||
* this is called during fork when the task is not yet in /proc */
|
||||
newmm->exe_file = get_mm_exe_file(oldmm);
|
||||
}
|
||||
|
||||
/**
|
||||
* get_task_mm - acquire a reference to the task's mm
|
||||
*
|
||||
@@ -837,8 +856,6 @@ struct mm_struct *dup_mm(struct task_struct *tsk)
|
||||
if (init_new_context(tsk, mm))
|
||||
goto fail_nocontext;
|
||||
|
||||
dup_mm_exe_file(oldmm, mm);
|
||||
|
||||
err = dup_mmap(mm, oldmm);
|
||||
if (err)
|
||||
goto free_pt;
|
||||
|
||||
+17
-7
@@ -323,22 +323,24 @@ EXPORT_SYMBOL_GPL(ktime_sub_ns);
|
||||
/*
|
||||
* Divide a ktime value by a nanosecond value
|
||||
*/
|
||||
u64 ktime_divns(const ktime_t kt, s64 div)
|
||||
s64 __ktime_divns(const ktime_t kt, s64 div)
|
||||
{
|
||||
u64 dclc;
|
||||
int sft = 0;
|
||||
s64 dclc;
|
||||
u64 tmp;
|
||||
|
||||
dclc = ktime_to_ns(kt);
|
||||
tmp = dclc < 0 ? -dclc : dclc;
|
||||
/* Make sure the divisor is less than 2^32: */
|
||||
while (div >> 32) {
|
||||
sft++;
|
||||
div >>= 1;
|
||||
}
|
||||
dclc >>= sft;
|
||||
do_div(dclc, (unsigned long) div);
|
||||
|
||||
return dclc;
|
||||
tmp >>= sft;
|
||||
do_div(tmp, (unsigned long) div);
|
||||
return dclc < 0 ? -tmp : tmp;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__ktime_divns);
|
||||
#endif /* BITS_PER_LONG >= 64 */
|
||||
|
||||
/*
|
||||
@@ -469,6 +471,7 @@ void destroy_hrtimer_on_stack(struct hrtimer *timer)
|
||||
{
|
||||
debug_object_free(timer, &hrtimer_debug_descr);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(destroy_hrtimer_on_stack);
|
||||
|
||||
#else
|
||||
static inline void debug_hrtimer_init(struct hrtimer *timer) { }
|
||||
@@ -661,6 +664,7 @@ static int hrtimer_reprogram(struct hrtimer *timer,
|
||||
static inline void hrtimer_init_hres(struct hrtimer_cpu_base *base)
|
||||
{
|
||||
base->expires_next.tv64 = KTIME_MAX;
|
||||
base->hang_detected = 0;
|
||||
base->hres_active = 0;
|
||||
}
|
||||
|
||||
@@ -1164,7 +1168,12 @@ static void __hrtimer_init(struct hrtimer *timer, clockid_t clock_id,
|
||||
|
||||
cpu_base = &__raw_get_cpu_var(hrtimer_bases);
|
||||
|
||||
if (clock_id == CLOCK_REALTIME && mode != HRTIMER_MODE_ABS)
|
||||
/*
|
||||
* POSIX magic: Relative CLOCK_REALTIME timers are not affected by
|
||||
* clock modifications, so they needs to become CLOCK_MONOTONIC to
|
||||
* ensure POSIX compliance.
|
||||
*/
|
||||
if (clock_id == CLOCK_REALTIME && mode & HRTIMER_MODE_REL)
|
||||
clock_id = CLOCK_MONOTONIC;
|
||||
|
||||
base = hrtimer_clockid_to_base(clock_id);
|
||||
@@ -1650,6 +1659,7 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
|
||||
timerqueue_init_head(&cpu_base->clock_base[i].active);
|
||||
}
|
||||
|
||||
cpu_base->active_bases = 0;
|
||||
hrtimer_init_hres(cpu_base);
|
||||
}
|
||||
|
||||
|
||||
@@ -646,6 +646,15 @@ static int alarm_timer_set(struct k_itimer *timr, int flags,
|
||||
|
||||
/* start the timer */
|
||||
timr->it.alarm.interval = timespec_to_ktime(new_setting->it_interval);
|
||||
|
||||
/*
|
||||
* Rate limit to the tick as a hot fix to prevent DOS. Will be
|
||||
* mopped up later.
|
||||
*/
|
||||
if (timr->it.alarm.interval.tv64 &&
|
||||
ktime_to_ns(timr->it.alarm.interval) < TICK_NSEC)
|
||||
timr->it.alarm.interval = ktime_set(0, TICK_NSEC);
|
||||
|
||||
exp = timespec_to_ktime(new_setting->it_value);
|
||||
/* Convert (if necessary) to absolute time */
|
||||
if (flags != TIMER_ABSTIME) {
|
||||
|
||||
+2
-3
@@ -677,9 +677,8 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,
|
||||
err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);
|
||||
if (err < 0)
|
||||
goto free_skb;
|
||||
err = sock_tx_timestamp(sk, &skb_shinfo(skb)->tx_flags);
|
||||
if (err < 0)
|
||||
goto free_skb;
|
||||
|
||||
sock_tx_timestamp(sk, &skb_shinfo(skb)->tx_flags);
|
||||
|
||||
skb->dev = dev;
|
||||
skb->sk = sk;
|
||||
|
||||
+7
-3
@@ -1742,20 +1742,21 @@ static void __release_sock(struct sock *sk)
|
||||
* sk_wait_data - wait for data to arrive at sk_receive_queue
|
||||
* @sk: sock to wait on
|
||||
* @timeo: for how long
|
||||
* @skb: last skb seen on sk_receive_queue
|
||||
*
|
||||
* Now socket state including sk->sk_err is changed only under lock,
|
||||
* hence we may omit checks after joining wait queue.
|
||||
* We check receive queue before schedule() only as optimization;
|
||||
* it is very likely that release_sock() added new data.
|
||||
*/
|
||||
int sk_wait_data(struct sock *sk, long *timeo)
|
||||
int sk_wait_data(struct sock *sk, long *timeo, const struct sk_buff *skb)
|
||||
{
|
||||
int rc;
|
||||
DEFINE_WAIT(wait);
|
||||
|
||||
prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE);
|
||||
set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags);
|
||||
rc = sk_wait_event(sk, timeo, !skb_queue_empty(&sk->sk_receive_queue));
|
||||
rc = sk_wait_event(sk, timeo, skb_peek_tail(&sk->sk_receive_queue) != skb);
|
||||
clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags);
|
||||
finish_wait(sk_sleep(sk), &wait);
|
||||
return rc;
|
||||
@@ -2095,8 +2096,11 @@ void sock_init_data(struct socket *sock, struct sock *sk)
|
||||
sk->sk_type = sock->type;
|
||||
sk->sk_wq = sock->wq;
|
||||
sock->sk = sk;
|
||||
} else
|
||||
sk->sk_uid = SOCK_INODE(sock)->i_uid;
|
||||
} else {
|
||||
sk->sk_wq = NULL;
|
||||
sk->sk_uid = make_kuid(sock_net(sk)->user_ns, 0);
|
||||
}
|
||||
|
||||
spin_lock_init(&sk->sk_dst_lock);
|
||||
rwlock_init(&sk->sk_callback_lock);
|
||||
|
||||
@@ -68,11 +68,13 @@ static int sockev_client_cb(struct notifier_block *nb,
|
||||
|
||||
sock = (struct socket *)data;
|
||||
if (!socknlmsgsk || !sock)
|
||||
goto done;
|
||||
goto sk_null;
|
||||
|
||||
sk = sock->sk;
|
||||
if (!sk)
|
||||
goto done;
|
||||
goto sk_null;
|
||||
|
||||
sock_hold(sk);
|
||||
|
||||
skb = nlmsg_new(sizeof(struct sknlsockevmsg), GFP_KERNEL);
|
||||
if (skb == NULL)
|
||||
@@ -96,6 +98,8 @@ static int sockev_client_cb(struct notifier_block *nb,
|
||||
smsg->skflags = sk->sk_flags;
|
||||
nlmsg_notify(socknlmsgsk, skb, 0, SKNLGRP_SOCKEV, 0, GFP_KERNEL);
|
||||
done:
|
||||
sock_put(sk);
|
||||
sk_null:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -165,6 +165,8 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
} else
|
||||
dst_hold(dst);
|
||||
|
||||
dst->ops->update_pmtu(dst, ntohl(info));
|
||||
|
||||
if (inet_csk(sk)->icsk_pmtu_cookie > dst_mtu(dst)) {
|
||||
dccp_sync_mss(sk, dst_mtu(dst));
|
||||
} /* else let the usual retransmit timer handle it */
|
||||
|
||||
+3
-3
@@ -848,7 +848,7 @@ int dccp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
default:
|
||||
dccp_pr_debug("packet_type=%s\n",
|
||||
dccp_packet_name(dh->dccph_type));
|
||||
sk_eat_skb(sk, skb, 0);
|
||||
sk_eat_skb(sk, skb, false);
|
||||
}
|
||||
verify_sock_status:
|
||||
if (sock_flag(sk, SOCK_DONE)) {
|
||||
@@ -888,7 +888,7 @@ verify_sock_status:
|
||||
break;
|
||||
}
|
||||
|
||||
sk_wait_data(sk, &timeo);
|
||||
sk_wait_data(sk, &timeo, NULL);
|
||||
continue;
|
||||
found_ok_skb:
|
||||
if (len > skb->len)
|
||||
@@ -905,7 +905,7 @@ verify_sock_status:
|
||||
len = skb->len;
|
||||
found_fin_ok:
|
||||
if (!(flags & MSG_PEEK))
|
||||
sk_eat_skb(sk, skb, 0);
|
||||
sk_eat_skb(sk, skb, false);
|
||||
break;
|
||||
} while (1);
|
||||
out:
|
||||
|
||||
@@ -361,6 +361,7 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb)
|
||||
fl4.daddr = daddr;
|
||||
fl4.saddr = rt->rt_spec_dst;
|
||||
fl4.flowi4_mark = mark;
|
||||
fl4.flowi4_uid = sock_net_uid(net, NULL);
|
||||
fl4.flowi4_tos = RT_TOS(ip_hdr(skb)->tos);
|
||||
fl4.flowi4_proto = IPPROTO_ICMP;
|
||||
security_skb_classify_flow(skb, flowi4_to_flowi(&fl4));
|
||||
@@ -392,6 +393,7 @@ static struct rtable *icmp_route_lookup(struct net *net,
|
||||
param->replyopts.opt.opt.faddr : iph->saddr);
|
||||
fl4->saddr = saddr;
|
||||
fl4->flowi4_mark = mark;
|
||||
fl4->flowi4_uid = sock_net_uid(net, NULL);
|
||||
fl4->flowi4_tos = RT_TOS(tos);
|
||||
fl4->flowi4_proto = IPPROTO_ICMP;
|
||||
fl4->fl4_icmp_type = type;
|
||||
|
||||
@@ -365,7 +365,8 @@ struct dst_entry *inet_csk_route_req(struct sock *sk,
|
||||
RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE,
|
||||
sk->sk_protocol, inet_sk_flowi_flags(sk),
|
||||
(opt && opt->opt.srr) ? opt->opt.faddr : ireq->rmt_addr,
|
||||
ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport);
|
||||
ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport,
|
||||
sk->sk_uid);
|
||||
security_req_classify_flow(req, flowi4_to_flowi(fl4));
|
||||
rt = ip_route_output_flow(net, fl4, sk);
|
||||
if (IS_ERR(rt))
|
||||
@@ -398,7 +399,8 @@ struct dst_entry *inet_csk_route_child_sock(struct sock *sk,
|
||||
RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE,
|
||||
sk->sk_protocol, inet_sk_flowi_flags(sk),
|
||||
(opt && opt->opt.srr) ? opt->opt.faddr : ireq->rmt_addr,
|
||||
ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport);
|
||||
ireq->loc_addr, ireq->rmt_port, inet_sk(sk)->inet_sport,
|
||||
sk->sk_uid);
|
||||
security_req_classify_flow(req, flowi4_to_flowi(fl4));
|
||||
rt = ip_route_output_flow(net, fl4, sk);
|
||||
if (IS_ERR(rt))
|
||||
|
||||
@@ -1511,7 +1511,8 @@ void ip_send_reply(struct sock *sk, struct sk_buff *skb, __be32 daddr,
|
||||
RT_SCOPE_UNIVERSE, sk->sk_protocol,
|
||||
ip_reply_arg_flowi_flags(arg),
|
||||
daddr, rt->rt_spec_dst,
|
||||
tcp_hdr(skb)->source, tcp_hdr(skb)->dest);
|
||||
tcp_hdr(skb)->source, tcp_hdr(skb)->dest,
|
||||
arg->uid);
|
||||
security_skb_classify_flow(skb, flowi4_to_flowi(&fl4));
|
||||
rt = ip_route_output_key(sock_net(sk), &fl4);
|
||||
if (IS_ERR(rt))
|
||||
|
||||
+17
-7
@@ -1211,6 +1211,10 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsi
|
||||
struct net *net = sock_net(sk);
|
||||
struct mr_table *mrt;
|
||||
|
||||
if (sk->sk_type != SOCK_RAW ||
|
||||
inet_sk(sk)->inet_num != IPPROTO_IGMP)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mrt = ipmr_get_table(net, raw_sk(sk)->ipmr_table ? : RT_TABLE_DEFAULT);
|
||||
if (mrt == NULL)
|
||||
return -ENOENT;
|
||||
@@ -1223,11 +1227,8 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsi
|
||||
|
||||
switch (optname) {
|
||||
case MRT_INIT:
|
||||
if (sk->sk_type != SOCK_RAW ||
|
||||
inet_sk(sk)->inet_num != IPPROTO_IGMP)
|
||||
return -EOPNOTSUPP;
|
||||
if (optlen != sizeof(int))
|
||||
return -ENOPROTOOPT;
|
||||
return -EINVAL;
|
||||
|
||||
rtnl_lock();
|
||||
if (rtnl_dereference(mrt->mroute_sk)) {
|
||||
@@ -1288,9 +1289,11 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsi
|
||||
case MRT_ASSERT:
|
||||
{
|
||||
int v;
|
||||
if (optlen != sizeof(v))
|
||||
return -EINVAL;
|
||||
if (get_user(v, (int __user *)optval))
|
||||
return -EFAULT;
|
||||
mrt->mroute_do_assert = (v) ? 1 : 0;
|
||||
mrt->mroute_do_assert = !!v;
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_IP_PIMSM
|
||||
@@ -1298,9 +1301,11 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsi
|
||||
{
|
||||
int v;
|
||||
|
||||
if (optlen != sizeof(v))
|
||||
return -EINVAL;
|
||||
if (get_user(v, (int __user *)optval))
|
||||
return -EFAULT;
|
||||
v = (v) ? 1 : 0;
|
||||
v = !!v;
|
||||
|
||||
rtnl_lock();
|
||||
ret = 0;
|
||||
@@ -1329,7 +1334,8 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsi
|
||||
} else {
|
||||
if (!ipmr_new_table(net, v))
|
||||
ret = -ENOMEM;
|
||||
raw_sk(sk)->ipmr_table = v;
|
||||
else
|
||||
raw_sk(sk)->ipmr_table = v;
|
||||
}
|
||||
rtnl_unlock();
|
||||
return ret;
|
||||
@@ -1355,6 +1361,10 @@ int ip_mroute_getsockopt(struct sock *sk, int optname, char __user *optval, int
|
||||
struct net *net = sock_net(sk);
|
||||
struct mr_table *mrt;
|
||||
|
||||
if (sk->sk_type != SOCK_RAW ||
|
||||
inet_sk(sk)->inet_num != IPPROTO_IGMP)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mrt = ipmr_get_table(net, raw_sk(sk)->ipmr_table ? : RT_TABLE_DEFAULT);
|
||||
if (mrt == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
+4
-4
@@ -737,9 +737,8 @@ int ping_v4_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
ipc.opt = NULL;
|
||||
ipc.oif = sk->sk_bound_dev_if;
|
||||
ipc.tx_flags = 0;
|
||||
err = sock_tx_timestamp(sk, &ipc.tx_flags);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
sock_tx_timestamp(sk, &ipc.tx_flags);
|
||||
|
||||
if (msg->msg_controllen) {
|
||||
err = ip_cmsg_send(sock_net(sk), msg, &ipc);
|
||||
@@ -786,7 +785,8 @@ int ping_v4_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
|
||||
flowi4_init_output(&fl4, ipc.oif, sk->sk_mark, tos,
|
||||
RT_SCOPE_UNIVERSE, sk->sk_protocol,
|
||||
inet_sk_flowi_flags(sk), faddr, saddr, 0, 0);
|
||||
inet_sk_flowi_flags(sk), faddr, saddr, 0, 0,
|
||||
sk->sk_uid);
|
||||
|
||||
security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
|
||||
rt = ip_route_output_flow(net, &fl4, sk);
|
||||
|
||||
+1
-1
@@ -594,7 +594,7 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
RT_SCOPE_UNIVERSE,
|
||||
hdrincl ? IPPROTO_RAW : sk->sk_protocol,
|
||||
inet_sk_flowi_flags(sk) | FLOWI_FLAG_CAN_SLEEP,
|
||||
daddr, saddr, 0, 0);
|
||||
daddr, saddr, 0, 0, sk->sk_uid);
|
||||
|
||||
if (!hdrincl) {
|
||||
rfv.iov = msg->msg_iov;
|
||||
|
||||
@@ -352,7 +352,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
|
||||
RT_CONN_FLAGS(sk), RT_SCOPE_UNIVERSE, IPPROTO_TCP,
|
||||
inet_sk_flowi_flags(sk),
|
||||
(opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
|
||||
ireq->loc_addr, th->source, th->dest);
|
||||
ireq->loc_addr, th->source, th->dest, sk->sk_uid);
|
||||
security_req_classify_flow(req, flowi4_to_flowi(&fl4));
|
||||
rt = ip_route_output_key(sock_net(sk), &fl4);
|
||||
if (IS_ERR(rt)) {
|
||||
|
||||
+13
-10
@@ -675,7 +675,7 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos,
|
||||
*/
|
||||
if (!skb_queue_empty(&sk->sk_receive_queue))
|
||||
break;
|
||||
sk_wait_data(sk, &timeo);
|
||||
sk_wait_data(sk, &timeo, NULL);
|
||||
if (signal_pending(current)) {
|
||||
ret = sock_intr_errno(timeo);
|
||||
break;
|
||||
@@ -1397,11 +1397,11 @@ int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
|
||||
break;
|
||||
}
|
||||
if (tcp_hdr(skb)->fin) {
|
||||
sk_eat_skb(sk, skb, 0);
|
||||
sk_eat_skb(sk, skb, false);
|
||||
++seq;
|
||||
break;
|
||||
}
|
||||
sk_eat_skb(sk, skb, 0);
|
||||
sk_eat_skb(sk, skb, false);
|
||||
if (!desc->count)
|
||||
break;
|
||||
tp->copied_seq = seq;
|
||||
@@ -1440,8 +1440,8 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
int target; /* Read at least this many bytes */
|
||||
long timeo;
|
||||
struct task_struct *user_recv = NULL;
|
||||
int copied_early = 0;
|
||||
struct sk_buff *skb;
|
||||
bool copied_early = false;
|
||||
struct sk_buff *skb, *last;
|
||||
u32 urg_hole = 0;
|
||||
|
||||
lock_sock(sk);
|
||||
@@ -1501,7 +1501,9 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
|
||||
/* Next get a buffer. */
|
||||
|
||||
last = skb_peek_tail(&sk->sk_receive_queue);
|
||||
skb_queue_walk(&sk->sk_receive_queue, skb) {
|
||||
last = skb;
|
||||
/* Now that we have two receive queues this
|
||||
* shouldn't happen.
|
||||
*/
|
||||
@@ -1630,8 +1632,9 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
/* Do not sleep, just process backlog. */
|
||||
release_sock(sk);
|
||||
lock_sock(sk);
|
||||
} else
|
||||
sk_wait_data(sk, &timeo);
|
||||
} else {
|
||||
sk_wait_data(sk, &timeo, last);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_DMA
|
||||
tcp_service_net_dma(sk, false); /* Don't block */
|
||||
@@ -1719,7 +1722,7 @@ do_prequeue:
|
||||
dma_async_memcpy_issue_pending(tp->ucopy.dma_chan);
|
||||
|
||||
if ((offset + used) == skb->len)
|
||||
copied_early = 1;
|
||||
copied_early = true;
|
||||
|
||||
} else
|
||||
#endif
|
||||
@@ -1753,7 +1756,7 @@ skip_copy:
|
||||
goto found_fin_ok;
|
||||
if (!(flags & MSG_PEEK)) {
|
||||
sk_eat_skb(sk, skb, copied_early);
|
||||
copied_early = 0;
|
||||
copied_early = false;
|
||||
}
|
||||
continue;
|
||||
|
||||
@@ -1762,7 +1765,7 @@ skip_copy:
|
||||
++*seq;
|
||||
if (!(flags & MSG_PEEK)) {
|
||||
sk_eat_skb(sk, skb, copied_early);
|
||||
copied_early = 0;
|
||||
copied_early = false;
|
||||
}
|
||||
break;
|
||||
} while (len > 0);
|
||||
|
||||
+9
-6
@@ -628,6 +628,7 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
|
||||
arg.iov[0].iov_base = (unsigned char *)&rep;
|
||||
arg.iov[0].iov_len = sizeof(rep.th);
|
||||
|
||||
net = sk ? sock_net(sk) : dev_net(skb_dst(skb)->dev);
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
hash_location = tcp_parse_md5sig_option(th);
|
||||
if (!sk && hash_location) {
|
||||
@@ -638,7 +639,7 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
|
||||
* Incoming packet is checked with md5 hash with finding key,
|
||||
* no RST generated if md5 hash doesn't match.
|
||||
*/
|
||||
sk1 = __inet_lookup_listener(dev_net(skb_dst(skb)->dev),
|
||||
sk1 = __inet_lookup_listener(net,
|
||||
&tcp_hashinfo, ip_hdr(skb)->daddr,
|
||||
ntohs(th->source), inet_iif(skb));
|
||||
/* don't send rst if it can't find key */
|
||||
@@ -685,8 +686,8 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
|
||||
if (sk)
|
||||
arg.bound_dev_if = sk->sk_bound_dev_if;
|
||||
|
||||
net = dev_net(skb_dst(skb)->dev);
|
||||
arg.tos = ip_hdr(skb)->tos;
|
||||
arg.uid = sock_net_uid(net, sk && sk_fullsock(sk) ? sk : NULL);
|
||||
ip_send_reply(net->ipv4.tcp_sock, skb, ip_hdr(skb)->saddr,
|
||||
&arg, arg.iov[0].iov_len);
|
||||
|
||||
@@ -706,7 +707,8 @@ release_sk1:
|
||||
outside socket context is ugly, certainly. What can I do?
|
||||
*/
|
||||
|
||||
static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack,
|
||||
static void tcp_v4_send_ack(const struct sock *sk, struct sk_buff *skb,
|
||||
u32 seq, u32 ack,
|
||||
u32 win, u32 ts, int oif,
|
||||
struct tcp_md5sig_key *key,
|
||||
int reply_flags, u8 tos)
|
||||
@@ -721,7 +723,7 @@ static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack,
|
||||
];
|
||||
} rep;
|
||||
struct ip_reply_arg arg;
|
||||
struct net *net = dev_net(skb_dst(skb)->dev);
|
||||
struct net *net = sock_net(sk);
|
||||
|
||||
memset(&rep.th, 0, sizeof(struct tcphdr));
|
||||
memset(&arg, 0, sizeof(arg));
|
||||
@@ -770,6 +772,7 @@ static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack,
|
||||
if (oif)
|
||||
arg.bound_dev_if = oif;
|
||||
arg.tos = tos;
|
||||
arg.uid = sock_net_uid(net, sk_fullsock(sk) ? sk : NULL);
|
||||
ip_send_reply(net->ipv4.tcp_sock, skb, ip_hdr(skb)->saddr,
|
||||
&arg, arg.iov[0].iov_len);
|
||||
|
||||
@@ -781,7 +784,7 @@ static void tcp_v4_timewait_ack(struct sock *sk, struct sk_buff *skb)
|
||||
struct inet_timewait_sock *tw = inet_twsk(sk);
|
||||
struct tcp_timewait_sock *tcptw = tcp_twsk(sk);
|
||||
|
||||
tcp_v4_send_ack(skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt,
|
||||
tcp_v4_send_ack(sk, skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt,
|
||||
tcptw->tw_rcv_wnd >> tw->tw_rcv_wscale,
|
||||
tcptw->tw_ts_recent,
|
||||
tw->tw_bound_dev_if,
|
||||
@@ -796,7 +799,7 @@ static void tcp_v4_timewait_ack(struct sock *sk, struct sk_buff *skb)
|
||||
static void tcp_v4_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
|
||||
struct request_sock *req)
|
||||
{
|
||||
tcp_v4_send_ack(skb, tcp_rsk(req)->snt_isn + 1,
|
||||
tcp_v4_send_ack(sk, skb, tcp_rsk(req)->snt_isn + 1,
|
||||
tcp_rsk(req)->rcv_isn + 1, req->rcv_wnd,
|
||||
req->ts_recent,
|
||||
0,
|
||||
|
||||
+5
-4
@@ -872,9 +872,9 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
ipc.addr = inet->inet_saddr;
|
||||
|
||||
ipc.oif = sk->sk_bound_dev_if;
|
||||
err = sock_tx_timestamp(sk, &ipc.tx_flags);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
sock_tx_timestamp(sk, &ipc.tx_flags);
|
||||
|
||||
if (msg->msg_controllen) {
|
||||
err = ip_cmsg_send(sock_net(sk), msg, &ipc);
|
||||
if (err)
|
||||
@@ -932,7 +932,8 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
flowi4_init_output(fl4, ipc.oif, sk->sk_mark, tos,
|
||||
RT_SCOPE_UNIVERSE, sk->sk_protocol,
|
||||
inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP,
|
||||
faddr, saddr, dport, inet->inet_sport);
|
||||
faddr, saddr, dport, inet->inet_sport,
|
||||
sk->sk_uid);
|
||||
|
||||
security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
|
||||
rt = ip_route_output_flow(net, fl4, sk);
|
||||
|
||||
@@ -711,6 +711,7 @@ int inet6_sk_rebuild_header(struct sock *sk)
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.fl6_dport = inet->inet_dport;
|
||||
fl6.fl6_sport = inet->inet_sport;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
security_sk_classify_flow(sk, flowi6_to_flowi(&fl6));
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@
|
||||
#include <linux/pfkeyv2.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/icmp.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/protocol.h>
|
||||
@@ -619,7 +620,7 @@ static void ah6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
|
||||
NETDEBUG(KERN_DEBUG "pmtu discovery on SA AH/%08x/%pI6\n",
|
||||
ntohl(ah->spi), &iph->daddr);
|
||||
|
||||
ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL));
|
||||
xfrm_state_put(x);
|
||||
}
|
||||
|
||||
|
||||
@@ -160,6 +160,7 @@ ipv4_connected:
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.fl6_dport = inet->inet_dport;
|
||||
fl6.fl6_sport = inet->inet_sport;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
|
||||
if (!fl6.flowi6_oif && (addr_type&IPV6_ADDR_MULTICAST))
|
||||
fl6.flowi6_oif = np->mcast_oif;
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <linux/random.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/icmp.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/protocol.h>
|
||||
@@ -440,6 +441,7 @@ static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
return;
|
||||
printk(KERN_DEBUG "pmtu discovery on SA ESP/%08x/%pI6\n",
|
||||
ntohl(esph->spi), &iph->daddr);
|
||||
ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL));
|
||||
xfrm_state_put(x);
|
||||
}
|
||||
|
||||
|
||||
+3
-5
@@ -466,6 +466,7 @@ void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)
|
||||
fl6.flowi6_oif = iif;
|
||||
fl6.fl6_icmp_type = type;
|
||||
fl6.fl6_icmp_code = code;
|
||||
fl6.flowi6_uid = sock_net_uid(net, NULL);
|
||||
security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));
|
||||
|
||||
sk = icmpv6_xmit_lock(net);
|
||||
@@ -564,6 +565,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
|
||||
fl6.flowi6_oif = skb->dev->ifindex;
|
||||
fl6.fl6_icmp_type = ICMPV6_ECHO_REPLY;
|
||||
fl6.flowi6_mark = mark;
|
||||
fl6.flowi6_uid = sock_net_uid(net, NULL);
|
||||
security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));
|
||||
|
||||
sk = icmpv6_xmit_lock(net);
|
||||
@@ -667,7 +669,6 @@ static int icmpv6_rcv(struct sk_buff *skb)
|
||||
struct net_device *dev = skb->dev;
|
||||
struct inet6_dev *idev = __in6_dev_get(dev);
|
||||
const struct in6_addr *saddr, *daddr;
|
||||
const struct ipv6hdr *orig_hdr;
|
||||
struct icmp6hdr *hdr;
|
||||
u8 type;
|
||||
|
||||
@@ -679,7 +680,7 @@ static int icmpv6_rcv(struct sk_buff *skb)
|
||||
XFRM_STATE_ICMP))
|
||||
goto drop_no_count;
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(*hdr) + sizeof(*orig_hdr)))
|
||||
if (!pskb_may_pull(skb, sizeof(*hdr) + sizeof(struct ipv6hdr)))
|
||||
goto drop_no_count;
|
||||
|
||||
nh = skb_network_offset(skb);
|
||||
@@ -741,9 +742,6 @@ static int icmpv6_rcv(struct sk_buff *skb)
|
||||
if (!pskb_may_pull(skb, sizeof(struct ipv6hdr)))
|
||||
goto discard_it;
|
||||
hdr = icmp6_hdr(skb);
|
||||
orig_hdr = (struct ipv6hdr *) (hdr + 1);
|
||||
rt6_pmtu_discovery(&orig_hdr->daddr, &orig_hdr->saddr, dev,
|
||||
ntohl(hdr->icmp6_mtu));
|
||||
|
||||
/*
|
||||
* Drop through to notify
|
||||
|
||||
@@ -74,6 +74,7 @@ struct dst_entry *inet6_csk_route_req(struct sock *sk,
|
||||
fl6.flowi6_mark = inet_rsk(req)->ir_mark;
|
||||
fl6.fl6_dport = inet_rsk(req)->rmt_port;
|
||||
fl6.fl6_sport = inet_rsk(req)->loc_port;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
security_req_classify_flow(req, flowi6_to_flowi(&fl6));
|
||||
|
||||
dst = ip6_dst_lookup_flow(sk, &fl6, final_p, false);
|
||||
@@ -225,6 +226,7 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.fl6_sport = inet->inet_sport;
|
||||
fl6.fl6_dport = inet->inet_dport;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
security_sk_classify_flow(sk, flowi6_to_flowi(&fl6));
|
||||
|
||||
rcu_read_lock();
|
||||
|
||||
@@ -1321,11 +1321,8 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
|
||||
}
|
||||
|
||||
/* For UDP, check if TX timestamp is enabled */
|
||||
if (sk->sk_type == SOCK_DGRAM) {
|
||||
err = sock_tx_timestamp(sk, &tx_flags);
|
||||
if (err)
|
||||
goto error;
|
||||
}
|
||||
if (sk->sk_type == SOCK_DGRAM)
|
||||
sock_tx_timestamp(sk, &tx_flags);
|
||||
|
||||
/*
|
||||
* Let's try using as much space as possible.
|
||||
|
||||
@@ -1027,6 +1027,8 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
memcpy(&fl6, &t->fl.u.ip6, sizeof (fl6));
|
||||
fl6.flowi6_proto = IPPROTO_IPIP;
|
||||
|
||||
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
||||
|
||||
dsfield = ipv4_get_dsfield(iph);
|
||||
|
||||
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
|
||||
@@ -1078,6 +1080,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
|
||||
memcpy(&fl6, &t->fl.u.ip6, sizeof (fl6));
|
||||
fl6.flowi6_proto = IPPROTO_IPV6;
|
||||
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
||||
|
||||
dsfield = ipv6_get_dsfield(ipv6h);
|
||||
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
|
||||
|
||||
+8
-3
@@ -1588,6 +1588,10 @@ int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, uns
|
||||
struct net *net = sock_net(sk);
|
||||
struct mr6_table *mrt;
|
||||
|
||||
if (sk->sk_type != SOCK_RAW ||
|
||||
inet_sk(sk)->inet_num != IPPROTO_ICMPV6)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mrt = ip6mr_get_table(net, raw6_sk(sk)->ip6mr_table ? : RT6_TABLE_DFLT);
|
||||
if (mrt == NULL)
|
||||
return -ENOENT;
|
||||
@@ -1599,9 +1603,6 @@ int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, uns
|
||||
|
||||
switch (optname) {
|
||||
case MRT6_INIT:
|
||||
if (sk->sk_type != SOCK_RAW ||
|
||||
inet_sk(sk)->inet_num != IPPROTO_ICMPV6)
|
||||
return -EOPNOTSUPP;
|
||||
if (optlen < sizeof(int))
|
||||
return -EINVAL;
|
||||
|
||||
@@ -1722,6 +1723,10 @@ int ip6_mroute_getsockopt(struct sock *sk, int optname, char __user *optval,
|
||||
struct net *net = sock_net(sk);
|
||||
struct mr6_table *mrt;
|
||||
|
||||
if (sk->sk_type != SOCK_RAW ||
|
||||
inet_sk(sk)->inet_num != IPPROTO_ICMPV6)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
mrt = ip6mr_get_table(net, raw6_sk(sk)->ip6mr_table ? : RT6_TABLE_DFLT);
|
||||
if (mrt == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <linux/list.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/icmp.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/protocol.h>
|
||||
@@ -71,6 +72,7 @@ static void ipcomp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
|
||||
printk(KERN_DEBUG "pmtu discovery on SA IPCOMP/%08x/%pI6\n",
|
||||
spi, &iph->daddr);
|
||||
ip6_update_pmtu(skb, net, info, 0, 0, sock_net_uid(net, NULL));
|
||||
xfrm_state_put(x);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ int ip6_route_me_harder(struct sk_buff *skb)
|
||||
struct flowi6 fl6 = {
|
||||
.flowi6_oif = skb->sk ? skb->sk->sk_bound_dev_if : 0,
|
||||
.flowi6_mark = skb->mark,
|
||||
.flowi6_uid = sock_net_uid(net, skb->sk),
|
||||
.daddr = iph->daddr,
|
||||
.saddr = iph->saddr,
|
||||
};
|
||||
|
||||
@@ -161,6 +161,7 @@ int ping_v6_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
|
||||
fl6.saddr = np->saddr;
|
||||
fl6.daddr = *daddr;
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
fl6.fl6_icmp_type = user_icmph.icmp6_type;
|
||||
fl6.fl6_icmp_code = user_icmph.icmp6_code;
|
||||
security_sk_classify_flow(sk, flowi6_to_flowi(&fl6));
|
||||
|
||||
+4
-2
@@ -327,9 +327,10 @@ static void rawv6_err(struct sock *sk, struct sk_buff *skb,
|
||||
return;
|
||||
|
||||
harderr = icmpv6_err_convert(type, code, &err);
|
||||
if (type == ICMPV6_PKT_TOOBIG)
|
||||
if (type == ICMPV6_PKT_TOOBIG) {
|
||||
ip6_sk_update_pmtu(skb, sk, info);
|
||||
harderr = (np->pmtudisc == IPV6_PMTUDISC_DO);
|
||||
|
||||
}
|
||||
if (np->recverr) {
|
||||
u8 *payload = skb->data;
|
||||
if (!inet->hdrincl)
|
||||
@@ -761,6 +762,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
|
||||
memset(&fl6, 0, sizeof(fl6));
|
||||
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
|
||||
if (sin6) {
|
||||
if (addr_len < SIN6_LEN_RFC2133)
|
||||
|
||||
+34
-110
@@ -1079,7 +1079,10 @@ static void ip6_rt_update_pmtu(struct dst_entry *dst, u32 mtu)
|
||||
{
|
||||
struct rt6_info *rt6 = (struct rt6_info*)dst;
|
||||
|
||||
dst_confirm(dst);
|
||||
if (mtu < dst_mtu(dst) && rt6->rt6i_dst.plen == 128) {
|
||||
struct net *net = dev_net(dst->dev);
|
||||
|
||||
rt6->rt6i_flags |= RTF_MODIFIED;
|
||||
if (mtu < IPV6_MIN_MTU) {
|
||||
u32 features = dst_metric(dst, RTAX_FEATURES);
|
||||
@@ -1088,9 +1091,40 @@ static void ip6_rt_update_pmtu(struct dst_entry *dst, u32 mtu)
|
||||
dst_metric_set(dst, RTAX_FEATURES, features);
|
||||
}
|
||||
dst_metric_set(dst, RTAX_MTU, mtu);
|
||||
rt6_update_expires(rt6, net->ipv6.sysctl.ip6_rt_mtu_expires);
|
||||
}
|
||||
}
|
||||
|
||||
void ip6_update_pmtu(struct sk_buff *skb, struct net *net, __be32 mtu,
|
||||
int oif, u32 mark, kuid_t uid)
|
||||
{
|
||||
const struct ipv6hdr *iph = (struct ipv6hdr *) skb->data;
|
||||
struct dst_entry *dst;
|
||||
struct flowi6 fl6;
|
||||
|
||||
memset(&fl6, 0, sizeof(fl6));
|
||||
fl6.flowi6_oif = oif;
|
||||
fl6.flowi6_mark = mark;
|
||||
fl6.flowi6_flags = FLOWI_FLAG_PRECOW_METRICS;
|
||||
fl6.daddr = iph->daddr;
|
||||
fl6.saddr = iph->saddr;
|
||||
fl6.flowlabel = (*(__be32 *) iph) & IPV6_FLOWINFO_MASK;
|
||||
fl6.flowi6_uid = uid;
|
||||
|
||||
dst = ip6_route_output(net, NULL, &fl6);
|
||||
if (!dst->error)
|
||||
ip6_rt_update_pmtu(dst, ntohl(mtu));
|
||||
dst_release(dst);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ip6_update_pmtu);
|
||||
|
||||
void ip6_sk_update_pmtu(struct sk_buff *skb, struct sock *sk, __be32 mtu)
|
||||
{
|
||||
ip6_update_pmtu(skb, sock_net(sk), mtu,
|
||||
sk->sk_bound_dev_if, sk->sk_mark, sk->sk_uid);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ip6_sk_update_pmtu);
|
||||
|
||||
static unsigned int ip6_default_advmss(const struct dst_entry *dst)
|
||||
{
|
||||
struct net_device *dev = dst->dev;
|
||||
@@ -1756,116 +1790,6 @@ out:
|
||||
dst_release(&rt->dst);
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle ICMP "packet too big" messages
|
||||
* i.e. Path MTU discovery
|
||||
*/
|
||||
|
||||
static void rt6_do_pmtu_disc(const struct in6_addr *daddr, const struct in6_addr *saddr,
|
||||
struct net *net, u32 pmtu, int ifindex)
|
||||
{
|
||||
struct rt6_info *rt, *nrt;
|
||||
int allfrag = 0;
|
||||
again:
|
||||
rt = rt6_lookup(net, daddr, saddr, ifindex, 0);
|
||||
if (!rt)
|
||||
return;
|
||||
|
||||
if (rt6_check_expired(rt)) {
|
||||
ip6_del_rt(rt);
|
||||
goto again;
|
||||
}
|
||||
|
||||
if (pmtu >= dst_mtu(&rt->dst))
|
||||
goto out;
|
||||
|
||||
if (pmtu < IPV6_MIN_MTU) {
|
||||
/*
|
||||
* According to RFC2460, PMTU is set to the IPv6 Minimum Link
|
||||
* MTU (1280) and a fragment header should always be included
|
||||
* after a node receiving Too Big message reporting PMTU is
|
||||
* less than the IPv6 Minimum Link MTU.
|
||||
*/
|
||||
pmtu = IPV6_MIN_MTU;
|
||||
allfrag = 1;
|
||||
}
|
||||
|
||||
/* New mtu received -> path was valid.
|
||||
They are sent only in response to data packets,
|
||||
so that this nexthop apparently is reachable. --ANK
|
||||
*/
|
||||
dst_confirm(&rt->dst);
|
||||
|
||||
/* Host route. If it is static, it would be better
|
||||
not to override it, but add new one, so that
|
||||
when cache entry will expire old pmtu
|
||||
would return automatically.
|
||||
*/
|
||||
if (rt->rt6i_flags & RTF_CACHE) {
|
||||
dst_metric_set(&rt->dst, RTAX_MTU, pmtu);
|
||||
if (allfrag) {
|
||||
u32 features = dst_metric(&rt->dst, RTAX_FEATURES);
|
||||
features |= RTAX_FEATURE_ALLFRAG;
|
||||
dst_metric_set(&rt->dst, RTAX_FEATURES, features);
|
||||
}
|
||||
rt6_update_expires(rt, net->ipv6.sysctl.ip6_rt_mtu_expires);
|
||||
rt->rt6i_flags |= RTF_MODIFIED;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Network route.
|
||||
Two cases are possible:
|
||||
1. It is connected route. Action: COW
|
||||
2. It is gatewayed route or NONEXTHOP route. Action: clone it.
|
||||
*/
|
||||
if (!dst_get_neighbour_noref_raw(&rt->dst) && !(rt->rt6i_flags & RTF_NONEXTHOP))
|
||||
nrt = rt6_alloc_cow(rt, daddr, saddr);
|
||||
else
|
||||
nrt = rt6_alloc_clone(rt, daddr);
|
||||
|
||||
if (nrt) {
|
||||
dst_metric_set(&nrt->dst, RTAX_MTU, pmtu);
|
||||
if (allfrag) {
|
||||
u32 features = dst_metric(&nrt->dst, RTAX_FEATURES);
|
||||
features |= RTAX_FEATURE_ALLFRAG;
|
||||
dst_metric_set(&nrt->dst, RTAX_FEATURES, features);
|
||||
}
|
||||
|
||||
/* According to RFC 1981, detecting PMTU increase shouldn't be
|
||||
* happened within 5 mins, the recommended timer is 10 mins.
|
||||
* Here this route expiration time is set to ip6_rt_mtu_expires
|
||||
* which is 10 mins. After 10 mins the decreased pmtu is expired
|
||||
* and detecting PMTU increase will be automatically happened.
|
||||
*/
|
||||
rt6_update_expires(nrt, net->ipv6.sysctl.ip6_rt_mtu_expires);
|
||||
nrt->rt6i_flags |= RTF_DYNAMIC;
|
||||
ip6_ins_rt(nrt);
|
||||
}
|
||||
out:
|
||||
dst_release(&rt->dst);
|
||||
}
|
||||
|
||||
void rt6_pmtu_discovery(const struct in6_addr *daddr, const struct in6_addr *saddr,
|
||||
struct net_device *dev, u32 pmtu)
|
||||
{
|
||||
struct net *net = dev_net(dev);
|
||||
|
||||
/*
|
||||
* RFC 1981 states that a node "MUST reduce the size of the packets it
|
||||
* is sending along the path" that caused the Packet Too Big message.
|
||||
* Since it's not possible in the general case to determine which
|
||||
* interface was used to send the original packet, we update the MTU
|
||||
* on the interface that will be used to send future packets. We also
|
||||
* update the MTU on the interface that received the Packet Too Big in
|
||||
* case the original packet was forced out that interface with
|
||||
* SO_BINDTODEVICE or similar. This is the next best thing to the
|
||||
* correct behaviour, which would be to update the MTU on all
|
||||
* interfaces.
|
||||
*/
|
||||
rt6_do_pmtu_disc(daddr, saddr, net, pmtu, 0);
|
||||
rt6_do_pmtu_disc(daddr, saddr, net, pmtu, dev->ifindex);
|
||||
}
|
||||
|
||||
/*
|
||||
* Misc support functions
|
||||
*/
|
||||
|
||||
@@ -246,6 +246,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
|
||||
fl6.flowi6_mark = inet_rsk(req)->ir_mark;
|
||||
fl6.fl6_dport = inet_rsk(req)->rmt_port;
|
||||
fl6.fl6_sport = inet_sk(sk)->inet_sport;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
security_req_classify_flow(req, flowi6_to_flowi(&fl6));
|
||||
|
||||
dst = ip6_dst_lookup_flow(sk, &fl6, final_p, false);
|
||||
|
||||
+15
-8
@@ -252,6 +252,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.fl6_dport = usin->sin6_port;
|
||||
fl6.fl6_sport = inet->inet_sport;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
|
||||
opt = rcu_dereference_protected(np->opt, sock_owned_by_user(sk));
|
||||
final_p = fl6_update_dst(&fl6, opt, &final);
|
||||
@@ -406,6 +407,7 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.fl6_dport = inet->inet_dport;
|
||||
fl6.fl6_sport = inet->inet_sport;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));
|
||||
|
||||
dst = ip6_dst_lookup_flow(sk, &fl6, NULL, false);
|
||||
@@ -417,6 +419,8 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
} else
|
||||
dst_hold(dst);
|
||||
|
||||
dst->ops->update_pmtu(dst, ntohl(info));
|
||||
|
||||
if (inet_csk(sk)->icsk_pmtu_cookie > dst_mtu(dst)) {
|
||||
tcp_sync_mss(sk, dst_mtu(dst));
|
||||
tcp_simple_retransmit(sk);
|
||||
@@ -829,14 +833,15 @@ static int tcp6_gro_complete(struct sk_buff *skb)
|
||||
return tcp_gro_complete(skb);
|
||||
}
|
||||
|
||||
static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
|
||||
u32 ts, struct tcp_md5sig_key *key, int rst, u8 tclass)
|
||||
static void tcp_v6_send_response(struct sock *sk, struct sk_buff *skb, u32 seq,
|
||||
u32 ack, u32 win, u32 ts,
|
||||
struct tcp_md5sig_key *key, int rst, u8 tclass)
|
||||
{
|
||||
const struct tcphdr *th = tcp_hdr(skb);
|
||||
struct tcphdr *t1;
|
||||
struct sk_buff *buff;
|
||||
struct flowi6 fl6;
|
||||
struct net *net = dev_net(skb_dst(skb)->dev);
|
||||
struct net *net = sk ? sock_net(sk) : dev_net(skb_dst(skb)->dev);
|
||||
struct sock *ctl_sk = net->ipv6.tcp_sk;
|
||||
unsigned int tot_len = sizeof(struct tcphdr);
|
||||
struct dst_entry *dst;
|
||||
@@ -904,6 +909,7 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
|
||||
fl6.flowi6_mark = IP6_REPLY_MARK(net, skb->mark);
|
||||
fl6.fl6_dport = t1->dest;
|
||||
fl6.fl6_sport = t1->source;
|
||||
fl6.flowi6_uid = sock_net_uid(net, sk && sk_fullsock(sk) ? sk : NULL);
|
||||
security_skb_classify_flow(skb, flowi6_to_flowi(&fl6));
|
||||
|
||||
/* Pass a socket to ip6_dst_lookup either it is for RST
|
||||
@@ -977,7 +983,7 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
|
||||
ack_seq = ntohl(th->seq) + th->syn + th->fin + skb->len -
|
||||
(th->doff << 2);
|
||||
|
||||
tcp_v6_send_response(skb, seq, ack_seq, 0, 0, key, 1, 0);
|
||||
tcp_v6_send_response(sk, skb, seq, ack_seq, 0, 0, key, 1, 0);
|
||||
|
||||
#ifdef CONFIG_TCP_MD5SIG
|
||||
release_sk1:
|
||||
@@ -988,10 +994,11 @@ release_sk1:
|
||||
#endif
|
||||
}
|
||||
|
||||
static void tcp_v6_send_ack(struct sk_buff *skb, u32 seq, u32 ack, u32 win, u32 ts,
|
||||
static void tcp_v6_send_ack(struct sock *sk, struct sk_buff *skb,
|
||||
u32 seq, u32 ack, u32 win, u32 ts,
|
||||
struct tcp_md5sig_key *key, u8 tclass)
|
||||
{
|
||||
tcp_v6_send_response(skb, seq, ack, win, ts, key, 0, tclass);
|
||||
tcp_v6_send_response(sk, skb, seq, ack, win, ts, key, 0, tclass);
|
||||
}
|
||||
|
||||
static void tcp_v6_timewait_ack(struct sock *sk, struct sk_buff *skb)
|
||||
@@ -999,7 +1006,7 @@ static void tcp_v6_timewait_ack(struct sock *sk, struct sk_buff *skb)
|
||||
struct inet_timewait_sock *tw = inet_twsk(sk);
|
||||
struct tcp_timewait_sock *tcptw = tcp_twsk(sk);
|
||||
|
||||
tcp_v6_send_ack(skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt,
|
||||
tcp_v6_send_ack(sk, skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt,
|
||||
tcptw->tw_rcv_wnd >> tw->tw_rcv_wscale,
|
||||
tcptw->tw_ts_recent, tcp_twsk_md5_key(tcptw),
|
||||
tw->tw_tclass);
|
||||
@@ -1010,7 +1017,7 @@ static void tcp_v6_timewait_ack(struct sock *sk, struct sk_buff *skb)
|
||||
static void tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
|
||||
struct request_sock *req)
|
||||
{
|
||||
tcp_v6_send_ack(skb, tcp_rsk(req)->snt_isn + 1, tcp_rsk(req)->rcv_isn + 1, req->rcv_wnd, req->ts_recent,
|
||||
tcp_v6_send_ack(sk, skb, tcp_rsk(req)->snt_isn + 1, tcp_rsk(req)->rcv_isn + 1, req->rcv_wnd, req->ts_recent,
|
||||
tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->daddr), 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -478,6 +478,9 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
if (sk == NULL)
|
||||
return;
|
||||
|
||||
if (type == ICMPV6_PKT_TOOBIG)
|
||||
ip6_sk_update_pmtu(skb, sk, info);
|
||||
|
||||
np = inet6_sk(sk);
|
||||
|
||||
if (!icmpv6_err_convert(type, code, &err) && !np->recverr)
|
||||
@@ -1092,6 +1095,7 @@ do_udp_sendmsg:
|
||||
fl6.flowi6_oif = np->sticky_pktinfo.ipi6_ifindex;
|
||||
|
||||
fl6.flowi6_mark = sk->sk_mark;
|
||||
fl6.flowi6_uid = sk->sk_uid;
|
||||
|
||||
if (msg->msg_controllen) {
|
||||
opt = &opt_space;
|
||||
|
||||
+4
-4
@@ -614,7 +614,7 @@ static int llc_wait_data(struct sock *sk, long timeo)
|
||||
if (signal_pending(current))
|
||||
break;
|
||||
rc = 0;
|
||||
if (sk_wait_data(sk, &timeo))
|
||||
if (sk_wait_data(sk, &timeo, NULL))
|
||||
break;
|
||||
}
|
||||
return rc;
|
||||
@@ -803,7 +803,7 @@ static int llc_ui_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
release_sock(sk);
|
||||
lock_sock(sk);
|
||||
} else
|
||||
sk_wait_data(sk, &timeo);
|
||||
sk_wait_data(sk, &timeo, NULL);
|
||||
|
||||
if ((flags & MSG_PEEK) && peek_seq != llc->copied_seq) {
|
||||
if (net_ratelimit())
|
||||
@@ -841,7 +841,7 @@ static int llc_ui_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
|
||||
if (!(flags & MSG_PEEK)) {
|
||||
spin_lock_irqsave(&sk->sk_receive_queue.lock, cpu_flags);
|
||||
sk_eat_skb(sk, skb, 0);
|
||||
sk_eat_skb(sk, skb, false);
|
||||
spin_unlock_irqrestore(&sk->sk_receive_queue.lock, cpu_flags);
|
||||
*seq = 0;
|
||||
}
|
||||
@@ -864,7 +864,7 @@ copy_uaddr:
|
||||
|
||||
if (!(flags & MSG_PEEK)) {
|
||||
spin_lock_irqsave(&sk->sk_receive_queue.lock, cpu_flags);
|
||||
sk_eat_skb(sk, skb, 0);
|
||||
sk_eat_skb(sk, skb, false);
|
||||
spin_unlock_irqrestore(&sk->sk_receive_queue.lock, cpu_flags);
|
||||
*seq = 0;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user