mirror of
https://github.com/Fishwaldo/build.git
synced 2025-07-08 05:58:33 +00:00
Merge branch 'master' into desktop
This commit is contained in:
commit
c79d7710fb
78 changed files with 30006 additions and 19110 deletions
|
@ -37,7 +37,7 @@ build tools</h3>
|
|||
## What do you need to get started?
|
||||
|
||||
- x64 machine with at least 2GB of memory and ~35GB of disk space for the VM, container or native OS,
|
||||
- Ubuntu Bionic 18.04 / Focal 20.04 x64 for native building or any [Docker](https://docs.armbian.com/Developer-Guide_Building-with-Docker/) capable x64 Linux for containerised,
|
||||
- Ubuntu Focal 20.04 x64 for native building or any [Docker](https://docs.armbian.com/Developer-Guide_Building-with-Docker/) capable x64 Linux for containerised,
|
||||
- superuser rights (configured sudo or root access).
|
||||
|
||||
<p align=right><a href=#table-of-contents>⇧</a></p>
|
||||
|
|
|
@ -2858,14 +2858,8 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
CONFIG_LOOPBACK_TARGET=m
|
||||
CONFIG_TCM_FC=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_ISCSI_TARGET_CXGB4=m
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
|
@ -10615,3 +10609,12 @@ CONFIG_TEST_FREE_PAGES=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1641,7 +1641,6 @@ CONFIG_PATA_IMX=y
|
|||
# Generic fallback / legacy drivers
|
||||
#
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -5475,3 +5474,12 @@ CONFIG_ARCH_HAS_SG_CHAIN=y
|
|||
CONFIG_SBITMAP=y
|
||||
# CONFIG_STRING_SELFTEST is not set
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2556,7 +2556,6 @@ CONFIG_DM_VERITY=m
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -9018,3 +9017,12 @@ CONFIG_TEST_FREE_PAGES=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2519,7 +2519,6 @@ CONFIG_DM_VERITY=m
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -8874,3 +8873,12 @@ CONFIG_TEST_MEMCAT_P=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2533,7 +2533,6 @@ CONFIG_DM_VERITY=m
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -8584,3 +8583,12 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
|||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2508,7 +2508,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -9385,3 +9384,12 @@ CONFIG_TEST_FREE_PAGES=m
|
|||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2508,7 +2508,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -9383,3 +9382,12 @@ CONFIG_TEST_FREE_PAGES=m
|
|||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1380,7 +1380,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
|||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_PM=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_REGULATOR is not set
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
@ -2325,7 +2325,6 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_VERITY_AVB=m
|
||||
# CONFIG_DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6756,3 +6755,12 @@ CONFIG_FONT_10x18=y
|
|||
CONFIG_SG_POOL=y
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_SBITMAP=y
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2522,7 +2522,6 @@ CONFIG_DM_DUST=m
|
|||
# CONFIG_DM_SWITCH is not set
|
||||
# CONFIG_DM_LOG_WRITES is not set
|
||||
# CONFIG_DM_INTEGRITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -7630,3 +7629,12 @@ CONFIG_TEST_MEMINIT=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2359,7 +2359,6 @@ CONFIG_DM_VERITY=m
|
|||
# CONFIG_DM_SWITCH is not set
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6787,3 +6786,12 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
|||
CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2437,12 +2437,10 @@ CONFIG_DM_VERITY=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
# CONFIG_TCM_IBLOCK is not set
|
||||
# CONFIG_TCM_FILEIO is not set
|
||||
# CONFIG_TCM_PSCSI is not set
|
||||
# CONFIG_LOOPBACK_TARGET is not set
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -7093,3 +7091,12 @@ CONFIG_TEST_STACKINIT=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2251,12 +2251,10 @@ CONFIG_DM_VERITY=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
# CONFIG_TCM_IBLOCK is not set
|
||||
# CONFIG_TCM_FILEIO is not set
|
||||
# CONFIG_TCM_PSCSI is not set
|
||||
# CONFIG_LOOPBACK_TARGET is not set
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6235,3 +6233,12 @@ CONFIG_EARLY_PRINTK=y
|
|||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2107,12 +2107,7 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_LOOPBACK_TARGET=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -5728,3 +5723,12 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
|||
CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2471,7 +2471,6 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -7516,3 +7515,12 @@ CONFIG_TEST_BITOPS=m
|
|||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2455,7 +2455,6 @@ CONFIG_DM_VERITY=m
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6580,3 +6579,12 @@ CONFIG_LIST_KUNIT_TEST=m
|
|||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2071,7 +2071,6 @@ CONFIG_PATA_OF_PLATFORM=y
|
|||
# CONFIG_ATA_GENERIC is not set
|
||||
# CONFIG_PATA_LEGACY is not set
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6074,3 +6073,12 @@ CONFIG_SG_POOL=y
|
|||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_SBITMAP=y
|
||||
# CONFIG_STRING_SELFTEST is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1987,7 +1987,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
# CONFIG_TCM_IBLOCK is not set
|
||||
# CONFIG_TCM_FILEIO is not set
|
||||
# CONFIG_TCM_PSCSI is not set
|
||||
|
@ -6988,3 +6987,12 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
|||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1971,7 +1971,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
# CONFIG_TCM_IBLOCK is not set
|
||||
# CONFIG_TCM_FILEIO is not set
|
||||
# CONFIG_TCM_PSCSI is not set
|
||||
|
@ -7116,3 +7115,12 @@ CONFIG_TEST_FREE_PAGES=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1829,7 +1829,6 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
# CONFIG_DM_INTEGRITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -6164,3 +6163,12 @@ CONFIG_VIRTUALIZATION=y
|
|||
CONFIG_VHOST_VSOCK=m
|
||||
CONFIG_VHOST=m
|
||||
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1709,7 +1709,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
|||
# CONFIG_WIMAX is not set
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
|
@ -1979,7 +1979,6 @@ CONFIG_DM_VERITY=y
|
|||
# CONFIG_DM_SWITCH is not set
|
||||
# CONFIG_DM_LOG_WRITES is not set
|
||||
# CONFIG_DM_INTEGRITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7095,3 +7094,12 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1713,7 +1713,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
|||
# CONFIG_WIMAX is not set
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
|
@ -1984,7 +1984,6 @@ CONFIG_DM_VERITY=y
|
|||
# CONFIG_DM_SWITCH is not set
|
||||
# CONFIG_DM_LOG_WRITES is not set
|
||||
# CONFIG_DM_INTEGRITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7123,3 +7122,12 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1365,7 +1365,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
|||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_PM=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_REGULATOR is not set
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
@ -1620,7 +1620,6 @@ CONFIG_DM_VERITY=y
|
|||
# CONFIG_DM_LOG_WRITES is not set
|
||||
# CONFIG_DM_VERITY_AVB is not set
|
||||
# CONFIG_DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -5679,3 +5678,12 @@ CONFIG_FONT_8x16=y
|
|||
# CONFIG_SG_SPLIT is not set
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1380,7 +1380,7 @@ CONFIG_WIMAX_DEBUG_LEVEL=8
|
|||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_PM=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_REGULATOR is not set
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
@ -1916,7 +1916,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
# CONFIG_DM_VERITY_AVB is not set
|
||||
# CONFIG_DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6675,3 +6674,12 @@ CONFIG_FONT_8x8=y
|
|||
CONFIG_FONT_8x16=y
|
||||
# CONFIG_SG_SPLIT is not set
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1700,7 +1700,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
|||
# CONFIG_WIMAX is not set
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
|
@ -1976,7 +1976,6 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7167,3 +7166,12 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1970,7 +1970,6 @@ CONFIG_DM_VERITY=y
|
|||
# CONFIG_DM_SWITCH is not set
|
||||
# CONFIG_DM_LOG_WRITES is not set
|
||||
# CONFIG_DM_INTEGRITY is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7161,3 +7160,12 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1630,7 +1630,6 @@ CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=1
|
|||
# CONFIG_DM_LOG_WRITES is not set
|
||||
# CONFIG_DM_VERITY_AVB is not set
|
||||
# CONFIG_DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -5548,3 +5547,12 @@ CONFIG_FONT_8x16=y
|
|||
# CONFIG_SG_SPLIT is not set
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.8.5 Kernel Configuration
|
||||
# Linux/arm64 5.9.6 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
|
@ -162,6 +162,7 @@ CONFIG_CGROUP_BPF=y
|
|||
CONFIG_SOCK_CGROUP_DATA=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_UTS_NS=y
|
||||
CONFIG_TIME_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_PID_NS=y
|
||||
|
@ -178,6 +179,7 @@ CONFIG_RD_LZMA=y
|
|||
CONFIG_RD_XZ=y
|
||||
CONFIG_RD_LZO=y
|
||||
CONFIG_RD_LZ4=y
|
||||
CONFIG_RD_ZSTD=y
|
||||
CONFIG_BOOT_CONFIG=y
|
||||
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
|
@ -291,10 +293,12 @@ CONFIG_ARCH_SUNXI=y
|
|||
# CONFIG_ARCH_BITMAIN is not set
|
||||
# CONFIG_ARCH_BRCMSTB is not set
|
||||
# CONFIG_ARCH_EXYNOS is not set
|
||||
# CONFIG_ARCH_SPARX5 is not set
|
||||
# CONFIG_ARCH_K3 is not set
|
||||
# CONFIG_ARCH_LAYERSCAPE is not set
|
||||
# CONFIG_ARCH_LG1K is not set
|
||||
# CONFIG_ARCH_HISI is not set
|
||||
# CONFIG_ARCH_KEEMBAY is not set
|
||||
# CONFIG_ARCH_MEDIATEK is not set
|
||||
CONFIG_ARCH_MESON=y
|
||||
# CONFIG_ARCH_MVEBU is not set
|
||||
|
@ -406,7 +410,6 @@ CONFIG_XEN=y
|
|||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
CONFIG_UNMAP_KERNEL_AT_EL0=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDEN_EL2_VECTORS=y
|
||||
CONFIG_ARM64_SSBD=y
|
||||
CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
|
||||
# CONFIG_ARM64_SW_TTBR0_PAN is not set
|
||||
|
@ -451,6 +454,8 @@ CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
|
|||
# ARMv8.4 architectural features
|
||||
#
|
||||
CONFIG_ARM64_AMU_EXTN=y
|
||||
CONFIG_AS_HAS_ARMV8_4=y
|
||||
CONFIG_ARM64_TLB_RANGE=y
|
||||
# end of ARMv8.4 architectural features
|
||||
|
||||
#
|
||||
|
@ -599,6 +604,7 @@ CONFIG_ARM_PSCI_FW=y
|
|||
# CONFIG_ARM_PSCI_CHECKER is not set
|
||||
CONFIG_HAVE_ARM_SMCCC=y
|
||||
CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
|
||||
CONFIG_ARM_SMCCC_SOC_ID=y
|
||||
|
||||
#
|
||||
# Tegra firmware driver
|
||||
|
@ -689,7 +695,6 @@ CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
|
|||
CONFIG_SECCOMP_FILTER=y
|
||||
CONFIG_HAVE_ARCH_STACKLEAK=y
|
||||
CONFIG_HAVE_STACKPROTECTOR=y
|
||||
CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
|
||||
CONFIG_STACKPROTECTOR=y
|
||||
CONFIG_STACKPROTECTOR_STRONG=y
|
||||
CONFIG_HAVE_CONTEXT_TRACKING=y
|
||||
|
@ -705,7 +710,6 @@ CONFIG_ARCH_MMAP_RND_BITS=18
|
|||
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
|
||||
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
|
||||
CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
|
||||
CONFIG_HAVE_COPY_THREAD_TLS=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_COMPAT_OLD_SIGACTION=y
|
||||
|
@ -836,7 +840,6 @@ CONFIG_SELECT_MEMORY_MODEL=y
|
|||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_NEED_MULTIPLE_NODES=y
|
||||
CONFIG_HAVE_MEMORY_PRESENT=y
|
||||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
|
@ -1433,6 +1436,7 @@ CONFIG_NET_DSA_TAG_DSA=m
|
|||
CONFIG_NET_DSA_TAG_EDSA=m
|
||||
CONFIG_NET_DSA_TAG_MTK=m
|
||||
CONFIG_NET_DSA_TAG_KSZ=m
|
||||
CONFIG_NET_DSA_TAG_RTL4_A=m
|
||||
CONFIG_NET_DSA_TAG_OCELOT=m
|
||||
CONFIG_NET_DSA_TAG_QCA=m
|
||||
CONFIG_NET_DSA_TAG_LAN9303=m
|
||||
|
@ -1514,6 +1518,7 @@ CONFIG_NET_SCH_DEFAULT=y
|
|||
# CONFIG_DEFAULT_FQ is not set
|
||||
# CONFIG_DEFAULT_CODEL is not set
|
||||
# CONFIG_DEFAULT_FQ_CODEL is not set
|
||||
# CONFIG_DEFAULT_FQ_PIE is not set
|
||||
# CONFIG_DEFAULT_SFQ is not set
|
||||
CONFIG_DEFAULT_PFIFO_FAST=y
|
||||
CONFIG_DEFAULT_NET_SCH="pfifo_fast"
|
||||
|
@ -1947,6 +1952,8 @@ CONFIG_PCIE_ROCKCHIP_EP=y
|
|||
#
|
||||
# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
|
||||
# CONFIG_PCIE_CADENCE_PLAT_EP is not set
|
||||
# CONFIG_PCI_J721E_HOST is not set
|
||||
# CONFIG_PCI_J721E_EP is not set
|
||||
# end of Cadence PCIe controllers support
|
||||
# end of PCI controller drivers
|
||||
|
||||
|
@ -2106,9 +2113,13 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
|||
# CONFIG_MTD_DOCG3 is not set
|
||||
# end of Self-contained MTD device drivers
|
||||
|
||||
#
|
||||
# NAND
|
||||
#
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
# CONFIG_MTD_RAW_NAND is not set
|
||||
# CONFIG_MTD_SPI_NAND is not set
|
||||
# end of NAND
|
||||
|
||||
#
|
||||
# LPDDR & LPDDR2 PCM memory drivers
|
||||
|
@ -2118,7 +2129,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
|
|||
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||
# CONFIG_SPI_CADENCE_QUADSPI is not set
|
||||
# CONFIG_MTD_UBI is not set
|
||||
CONFIG_MTD_HYPERBUS=m
|
||||
CONFIG_HBMC_AM654=m
|
||||
|
@ -2177,6 +2187,7 @@ CONFIG_NVME_FABRICS=m
|
|||
CONFIG_NVME_FC=m
|
||||
# CONFIG_NVME_TCP is not set
|
||||
CONFIG_NVME_TARGET=m
|
||||
# CONFIG_NVME_TARGET_PASSTHRU is not set
|
||||
CONFIG_NVME_TARGET_LOOP=m
|
||||
CONFIG_NVME_TARGET_FC=m
|
||||
# CONFIG_NVME_TARGET_FCLOOP is not set
|
||||
|
@ -2455,7 +2466,7 @@ CONFIG_MD_CLUSTER=m
|
|||
CONFIG_BCACHE=y
|
||||
# CONFIG_BCACHE_DEBUG is not set
|
||||
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
|
||||
# CONFIG_BCACHE_ASYNC_REGISTRAION is not set
|
||||
# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
|
||||
CONFIG_BLK_DEV_DM_BUILTIN=y
|
||||
CONFIG_BLK_DEV_DM=m
|
||||
# CONFIG_DM_DEBUG is not set
|
||||
|
@ -2492,7 +2503,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -2741,8 +2751,8 @@ CONFIG_ENC28J60_WRITEVERIFY=y
|
|||
# CONFIG_ENCX24J600 is not set
|
||||
# CONFIG_LAN743X is not set
|
||||
CONFIG_NET_VENDOR_MICROSEMI=y
|
||||
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
|
||||
CONFIG_MSCC_OCELOT_SWITCH=m
|
||||
CONFIG_MSCC_OCELOT_SWITCH_OCELOT=m
|
||||
CONFIG_NET_VENDOR_MYRI=y
|
||||
# CONFIG_MYRI10GE is not set
|
||||
# CONFIG_FEALNX is not set
|
||||
|
@ -2840,6 +2850,7 @@ CONFIG_XILINX_LL_TEMAC=m
|
|||
# CONFIG_HIPPI is not set
|
||||
CONFIG_MDIO_DEVICE=y
|
||||
CONFIG_MDIO_BUS=y
|
||||
CONFIG_MDIO_DEVRES=y
|
||||
CONFIG_MDIO_BCM_UNIMAC=m
|
||||
CONFIG_MDIO_BITBANG=y
|
||||
CONFIG_MDIO_BUS_MUX=y
|
||||
|
@ -3105,7 +3116,11 @@ CONFIG_MT7603E=m
|
|||
CONFIG_MT7615_COMMON=m
|
||||
CONFIG_MT7615E=m
|
||||
# CONFIG_MT7663U is not set
|
||||
# CONFIG_MT7663S is not set
|
||||
# CONFIG_MT7915E is not set
|
||||
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
||||
# CONFIG_WILC1000_SDIO is not set
|
||||
# CONFIG_WILC1000_SPI is not set
|
||||
CONFIG_WLAN_VENDOR_RALINK=y
|
||||
CONFIG_RT2X00=m
|
||||
CONFIG_RT2400PCI=m
|
||||
|
@ -3162,6 +3177,7 @@ CONFIG_RTW88=m
|
|||
# CONFIG_RTW88_8822BE is not set
|
||||
# CONFIG_RTW88_8822CE is not set
|
||||
# CONFIG_RTW88_8723DE is not set
|
||||
# CONFIG_RTW88_8821CE is not set
|
||||
CONFIG_WLAN_VENDOR_RSI=y
|
||||
CONFIG_RSI_91X=m
|
||||
# CONFIG_RSI_DEBUGFS is not set
|
||||
|
@ -3587,6 +3603,7 @@ CONFIG_VIRTIO_CONSOLE=y
|
|||
# CONFIG_IPMB_DEVICE_INTERFACE is not set
|
||||
CONFIG_HW_RANDOM=m
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
# CONFIG_HW_RANDOM_BA431 is not set
|
||||
# CONFIG_HW_RANDOM_VIRTIO is not set
|
||||
CONFIG_HW_RANDOM_MESON=m
|
||||
CONFIG_HW_RANDOM_CAVIUM=m
|
||||
|
@ -3711,6 +3728,7 @@ CONFIG_SPI_ALTERA=m
|
|||
CONFIG_SPI_AXI_SPI_ENGINE=m
|
||||
CONFIG_SPI_BITBANG=m
|
||||
CONFIG_SPI_CADENCE=m
|
||||
# CONFIG_SPI_CADENCE_QUADSPI is not set
|
||||
CONFIG_SPI_DESIGNWARE=m
|
||||
# CONFIG_SPI_DW_DMA is not set
|
||||
CONFIG_SPI_DW_PCI=m
|
||||
|
@ -3864,6 +3882,7 @@ CONFIG_GPIO_MAX7300=m
|
|||
CONFIG_GPIO_MAX732X=m
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
# CONFIG_GPIO_PCA9570 is not set
|
||||
CONFIG_GPIO_PCF857X=m
|
||||
CONFIG_GPIO_TPIC2810=m
|
||||
# end of I2C GPIO expanders
|
||||
|
@ -4001,6 +4020,7 @@ CONFIG_CHARGER_MAX77650=m
|
|||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24257 is not set
|
||||
# CONFIG_CHARGER_BQ24735 is not set
|
||||
# CONFIG_CHARGER_BQ2515X is not set
|
||||
# CONFIG_CHARGER_BQ25890 is not set
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
|
||||
|
@ -4040,6 +4060,7 @@ CONFIG_SENSORS_AXI_FAN_CONTROL=m
|
|||
CONFIG_SENSORS_ARM_SCPI=m
|
||||
CONFIG_SENSORS_ASPEED=m
|
||||
CONFIG_SENSORS_ATXP1=m
|
||||
# CONFIG_SENSORS_CORSAIR_CPRO is not set
|
||||
CONFIG_SENSORS_DRIVETEMP=m
|
||||
CONFIG_SENSORS_DS620=m
|
||||
CONFIG_SENSORS_DS1621=m
|
||||
|
@ -4190,6 +4211,7 @@ CONFIG_SENSORS_W83L786NG=m
|
|||
CONFIG_SENSORS_W83627HF=m
|
||||
CONFIG_SENSORS_W83627EHF=m
|
||||
CONFIG_THERMAL=y
|
||||
# CONFIG_THERMAL_NETLINK is not set
|
||||
CONFIG_THERMAL_STATISTICS=y
|
||||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
|
@ -4204,7 +4226,6 @@ CONFIG_THERMAL_GOV_BANG_BANG=y
|
|||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_CPU_FREQ_THERMAL=y
|
||||
CONFIG_CLOCK_THERMAL=y
|
||||
CONFIG_DEVFREQ_THERMAL=y
|
||||
CONFIG_THERMAL_EMULATION=y
|
||||
CONFIG_THERMAL_MMIO=m
|
||||
|
@ -4354,7 +4375,6 @@ CONFIG_MFD_SEC_CORE=y
|
|||
# CONFIG_MFD_SI476X_CORE is not set
|
||||
# CONFIG_MFD_SM501 is not set
|
||||
# CONFIG_MFD_SKY81452 is not set
|
||||
# CONFIG_MFD_SMSC is not set
|
||||
# CONFIG_ABX500_CORE is not set
|
||||
# CONFIG_MFD_STMPE is not set
|
||||
CONFIG_MFD_SUN6I_PRCM=y
|
||||
|
@ -4398,6 +4418,7 @@ CONFIG_MFD_ROHM_BD70528=m
|
|||
CONFIG_MFD_ROHM_BD71828=m
|
||||
# CONFIG_MFD_STPMIC1 is not set
|
||||
CONFIG_MFD_STMFX=m
|
||||
# CONFIG_MFD_KHADAS_MCU is not set
|
||||
CONFIG_MFD_VEXPRESS_SYSREG=y
|
||||
CONFIG_RAVE_SP_CORE=m
|
||||
# end of Multifunction device drivers
|
||||
|
@ -4416,9 +4437,11 @@ CONFIG_REGULATOR_AS3722=m
|
|||
CONFIG_REGULATOR_AXP20X=m
|
||||
CONFIG_REGULATOR_BD70528=m
|
||||
CONFIG_REGULATOR_BD71828=m
|
||||
# CONFIG_REGULATOR_CROS_EC is not set
|
||||
# CONFIG_REGULATOR_DA9210 is not set
|
||||
# CONFIG_REGULATOR_DA9211 is not set
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
# CONFIG_REGULATOR_FAN53880 is not set
|
||||
CONFIG_REGULATOR_GPIO=y
|
||||
# CONFIG_REGULATOR_ISL9305 is not set
|
||||
# CONFIG_REGULATOR_ISL6271A is not set
|
||||
|
@ -4442,12 +4465,14 @@ CONFIG_REGULATOR_MP8859=m
|
|||
CONFIG_REGULATOR_MP886X=m
|
||||
CONFIG_REGULATOR_MPQ7920=m
|
||||
# CONFIG_REGULATOR_MT6311 is not set
|
||||
# CONFIG_REGULATOR_PCA9450 is not set
|
||||
# CONFIG_REGULATOR_PFUZE100 is not set
|
||||
# CONFIG_REGULATOR_PV88060 is not set
|
||||
# CONFIG_REGULATOR_PV88080 is not set
|
||||
# CONFIG_REGULATOR_PV88090 is not set
|
||||
CONFIG_REGULATOR_PWM=y
|
||||
CONFIG_REGULATOR_QCOM_SPMI=y
|
||||
# CONFIG_REGULATOR_QCOM_USB_VBUS is not set
|
||||
CONFIG_REGULATOR_RC5T583=m
|
||||
CONFIG_REGULATOR_RK808=y
|
||||
CONFIG_REGULATOR_RN5T618=m
|
||||
|
@ -4459,6 +4484,7 @@ CONFIG_REGULATOR_S2MPS11=y
|
|||
CONFIG_REGULATOR_SLG51000=m
|
||||
# CONFIG_REGULATOR_SY8106A is not set
|
||||
CONFIG_REGULATOR_SY8824X=m
|
||||
# CONFIG_REGULATOR_SY8827N is not set
|
||||
# CONFIG_REGULATOR_TPS51632 is not set
|
||||
# CONFIG_REGULATOR_TPS62360 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
|
@ -4467,6 +4493,7 @@ CONFIG_REGULATOR_SY8824X=m
|
|||
# CONFIG_REGULATOR_TPS6524X is not set
|
||||
# CONFIG_REGULATOR_VCTRL is not set
|
||||
# CONFIG_REGULATOR_VEXPRESS is not set
|
||||
# CONFIG_REGULATOR_QCOM_LABIBB is not set
|
||||
CONFIG_RC_CORE=m
|
||||
CONFIG_RC_MAP=m
|
||||
CONFIG_LIRC=y
|
||||
|
@ -4504,12 +4531,14 @@ CONFIG_IR_SERIAL=m
|
|||
CONFIG_IR_SERIAL_TRANSMITTER=y
|
||||
CONFIG_IR_SIR=m
|
||||
CONFIG_RC_XBOX_DVD=m
|
||||
# CONFIG_IR_TOY is not set
|
||||
CONFIG_CEC_CORE=m
|
||||
CONFIG_CEC_NOTIFIER=y
|
||||
CONFIG_CEC_PIN=y
|
||||
CONFIG_MEDIA_CEC_RC=y
|
||||
CONFIG_CEC_PIN_ERROR_INJ=y
|
||||
CONFIG_MEDIA_CEC_SUPPORT=y
|
||||
# CONFIG_CEC_CH7322 is not set
|
||||
# CONFIG_CEC_CROS_EC is not set
|
||||
# CONFIG_CEC_MESON_AO is not set
|
||||
# CONFIG_CEC_MESON_G12A_AO is not set
|
||||
|
@ -4864,6 +4893,7 @@ CONFIG_VIDEO_TW9903=m
|
|||
CONFIG_VIDEO_TW9906=m
|
||||
CONFIG_VIDEO_TW9910=m
|
||||
CONFIG_VIDEO_VPX3220=m
|
||||
# CONFIG_VIDEO_MAX9286 is not set
|
||||
|
||||
#
|
||||
# Video and audio decoders
|
||||
|
@ -4931,7 +4961,6 @@ CONFIG_VIDEO_OV2640=m
|
|||
CONFIG_VIDEO_OV2659=m
|
||||
CONFIG_VIDEO_OV2680=m
|
||||
CONFIG_VIDEO_OV2685=m
|
||||
# CONFIG_VIDEO_OV2740 is not set
|
||||
CONFIG_VIDEO_OV5640=m
|
||||
CONFIG_VIDEO_OV5645=m
|
||||
CONFIG_VIDEO_OV5647=m
|
||||
|
@ -4961,6 +4990,7 @@ CONFIG_VIDEO_MT9V111=m
|
|||
CONFIG_VIDEO_SR030PC30=m
|
||||
CONFIG_VIDEO_NOON010PC30=m
|
||||
CONFIG_VIDEO_M5MOLS=m
|
||||
# CONFIG_VIDEO_RDACM20 is not set
|
||||
CONFIG_VIDEO_RJ54N1=m
|
||||
CONFIG_VIDEO_S5K6AA=m
|
||||
CONFIG_VIDEO_S5K6A3=m
|
||||
|
@ -4977,6 +5007,7 @@ CONFIG_VIDEO_S5C73M3=m
|
|||
CONFIG_VIDEO_AD5820=m
|
||||
CONFIG_VIDEO_AK7375=m
|
||||
CONFIG_VIDEO_DW9714=m
|
||||
# CONFIG_VIDEO_DW9768 is not set
|
||||
CONFIG_VIDEO_DW9807_VCM=m
|
||||
# end of Lens drivers
|
||||
|
||||
|
@ -5325,7 +5356,6 @@ CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
|
|||
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
|
||||
CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
|
||||
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
|
||||
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
|
||||
CONFIG_DRM_PANEL_RONBO_RB070D30=m
|
||||
CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m
|
||||
CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
|
||||
|
@ -5338,6 +5368,7 @@ CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
|
|||
CONFIG_DRM_PANEL_SHARP_LS037V7DW01=m
|
||||
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
|
||||
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
|
||||
# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
|
||||
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
|
||||
CONFIG_DRM_PANEL_SONY_ACX424AKP=m
|
||||
CONFIG_DRM_PANEL_SONY_ACX565AKM=m
|
||||
|
@ -5500,7 +5531,6 @@ CONFIG_LCD_CLASS_DEVICE=m
|
|||
# CONFIG_LCD_HX8357 is not set
|
||||
CONFIG_LCD_OTM3225A=m
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||
CONFIG_BACKLIGHT_GENERIC=m
|
||||
CONFIG_BACKLIGHT_LM3533=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
CONFIG_BACKLIGHT_QCOM_WLED=m
|
||||
|
@ -5700,6 +5730,7 @@ CONFIG_SND_SOC_FSL_MICFIL=m
|
|||
|
||||
# CONFIG_SND_I2S_HI6210_I2S is not set
|
||||
# CONFIG_SND_SOC_IMG is not set
|
||||
# CONFIG_SND_SOC_INTEL_KEEMBAY is not set
|
||||
# CONFIG_SND_SOC_MTK_BTCVSD is not set
|
||||
|
||||
#
|
||||
|
@ -5822,7 +5853,7 @@ CONFIG_SND_SOC_MAX98357A=m
|
|||
# CONFIG_SND_SOC_MAX98504 is not set
|
||||
CONFIG_SND_SOC_MAX9867=m
|
||||
# CONFIG_SND_SOC_MAX98927 is not set
|
||||
CONFIG_SND_SOC_MAX98373=m
|
||||
# CONFIG_SND_SOC_MAX98373_I2C is not set
|
||||
# CONFIG_SND_SOC_MAX98390 is not set
|
||||
# CONFIG_SND_SOC_MAX9860 is not set
|
||||
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
|
||||
|
@ -6088,8 +6119,8 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
|||
CONFIG_USB_DEFAULT_PERSIST=y
|
||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||
CONFIG_USB_OTG=y
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
# CONFIG_USB_OTG_PRODUCTLIST is not set
|
||||
# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
|
||||
CONFIG_USB_OTG_FSM=m
|
||||
CONFIG_USB_LEDS_TRIGGER_USBPORT=y
|
||||
CONFIG_USB_AUTOSUSPEND_DELAY=2
|
||||
|
@ -6504,6 +6535,7 @@ CONFIG_MMC_SDHCI_AM654=m
|
|||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
# CONFIG_LEDS_CLASS_FLASH is not set
|
||||
# CONFIG_LEDS_CLASS_MULTICOLOR is not set
|
||||
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
|
||||
|
||||
#
|
||||
|
@ -6524,10 +6556,7 @@ CONFIG_LEDS_LM3692X=m
|
|||
CONFIG_LEDS_GPIO=y
|
||||
# CONFIG_LEDS_LP3944 is not set
|
||||
# CONFIG_LEDS_LP3952 is not set
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
# CONFIG_LEDS_LP5523 is not set
|
||||
# CONFIG_LEDS_LP5562 is not set
|
||||
# CONFIG_LEDS_LP8501 is not set
|
||||
# CONFIG_LEDS_LP55XX_COMMON is not set
|
||||
# CONFIG_LEDS_LP8860 is not set
|
||||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_PCA963X is not set
|
||||
|
@ -6737,6 +6766,7 @@ CONFIG_PL330_DMA=y
|
|||
CONFIG_PLX_DMA=m
|
||||
# CONFIG_XILINX_DMA is not set
|
||||
# CONFIG_XILINX_ZYNQMP_DMA is not set
|
||||
# CONFIG_XILINX_ZYNQMP_DPDMA is not set
|
||||
CONFIG_QCOM_HIDMA_MGMT=y
|
||||
CONFIG_QCOM_HIDMA=y
|
||||
# CONFIG_DW_DMAC is not set
|
||||
|
@ -6908,13 +6938,6 @@ CONFIG_AD9834=m
|
|||
# end of IIO staging drivers
|
||||
|
||||
CONFIG_FB_SM750=m
|
||||
|
||||
#
|
||||
# Speakup console speech
|
||||
#
|
||||
# CONFIG_SPEAKUP is not set
|
||||
# end of Speakup console speech
|
||||
|
||||
CONFIG_STAGING_MEDIA=y
|
||||
CONFIG_VIDEO_HANTRO=m
|
||||
CONFIG_VIDEO_HANTRO_ROCKCHIP=y
|
||||
|
@ -6922,10 +6945,6 @@ CONFIG_VIDEO_MESON_VDEC=m
|
|||
CONFIG_VIDEO_ROCKCHIP_VDEC=m
|
||||
CONFIG_VIDEO_SUNXI=y
|
||||
CONFIG_VIDEO_SUNXI_CEDRUS=m
|
||||
|
||||
#
|
||||
# soc_camera sensor drivers
|
||||
#
|
||||
CONFIG_PHY_ROCKCHIP_DPHY_RX0=m
|
||||
CONFIG_VIDEO_ROCKCHIP_ISP1=m
|
||||
CONFIG_VIDEO_USBVISION=m
|
||||
|
@ -6939,7 +6958,6 @@ CONFIG_VIDEO_USBVISION=m
|
|||
# CONFIG_LTE_GDM724X is not set
|
||||
# CONFIG_GS_FPGABOOT is not set
|
||||
# CONFIG_UNISYSSPAR is not set
|
||||
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
|
||||
CONFIG_FB_TFT=m
|
||||
CONFIG_FB_TFT_AGM1264K_FL=m
|
||||
CONFIG_FB_TFT_BD663474=m
|
||||
|
@ -6974,8 +6992,6 @@ CONFIG_FB_TFT_UC1701=m
|
|||
CONFIG_FB_TFT_UPD161704=m
|
||||
CONFIG_FB_TFT_WATTEROTT=m
|
||||
CONFIG_FUSB_30X=m
|
||||
# CONFIG_WILC1000_SDIO is not set
|
||||
# CONFIG_WILC1000_SPI is not set
|
||||
# CONFIG_MOST_COMPONENTS is not set
|
||||
# CONFIG_KS7010 is not set
|
||||
# CONFIG_PI433 is not set
|
||||
|
@ -7247,6 +7263,7 @@ CONFIG_BMA180=m
|
|||
CONFIG_BMA220=m
|
||||
CONFIG_BMA400=m
|
||||
CONFIG_BMA400_I2C=m
|
||||
CONFIG_BMA400_SPI=m
|
||||
CONFIG_BMC150_ACCEL=m
|
||||
CONFIG_BMC150_ACCEL_I2C=m
|
||||
CONFIG_BMC150_ACCEL_SPI=m
|
||||
|
@ -7375,6 +7392,7 @@ CONFIG_BME680_SPI=m
|
|||
# CONFIG_CCS811 is not set
|
||||
# CONFIG_IAQCORE is not set
|
||||
CONFIG_PMS7003=m
|
||||
# CONFIG_SCD30_CORE is not set
|
||||
CONFIG_SENSIRION_SGP30=m
|
||||
CONFIG_SPS30=m
|
||||
# CONFIG_VZ89X is not set
|
||||
|
@ -7532,6 +7550,8 @@ CONFIG_FXOS8700=m
|
|||
CONFIG_FXOS8700_I2C=m
|
||||
CONFIG_FXOS8700_SPI=m
|
||||
# CONFIG_KMX61 is not set
|
||||
# CONFIG_INV_ICM42600_I2C is not set
|
||||
# CONFIG_INV_ICM42600_SPI is not set
|
||||
# CONFIG_INV_MPU6050_I2C is not set
|
||||
# CONFIG_INV_MPU6050_SPI is not set
|
||||
# CONFIG_IIO_ST_LSM6DSX is not set
|
||||
|
@ -7881,7 +7901,9 @@ CONFIG_PM_OPP=y
|
|||
# CONFIG_INTERCONNECT is not set
|
||||
CONFIG_COUNTER=m
|
||||
CONFIG_FTM_QUADDEC=m
|
||||
# CONFIG_MICROCHIP_TCB_CAPTURE is not set
|
||||
CONFIG_MOST=m
|
||||
# CONFIG_MOST_USB_HDM is not set
|
||||
# end of Device Drivers
|
||||
|
||||
#
|
||||
|
@ -8037,6 +8059,7 @@ CONFIG_SYSFS=y
|
|||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_TMPFS_XATTR=y
|
||||
# CONFIG_TMPFS_INODE64 is not set
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_HUGETLB_PAGE=y
|
||||
CONFIG_MEMFD_CREATE=y
|
||||
|
@ -8130,25 +8153,6 @@ CONFIG_EROFS_FS_XATTR=y
|
|||
CONFIG_EROFS_FS_POSIX_ACL=y
|
||||
CONFIG_EROFS_FS_SECURITY=y
|
||||
# CONFIG_EROFS_FS_ZIP is not set
|
||||
CONFIG_AUFS_FS=m
|
||||
CONFIG_AUFS_BRANCH_MAX_127=y
|
||||
# CONFIG_AUFS_BRANCH_MAX_511 is not set
|
||||
# CONFIG_AUFS_BRANCH_MAX_1023 is not set
|
||||
# CONFIG_AUFS_BRANCH_MAX_32767 is not set
|
||||
CONFIG_AUFS_SBILIST=y
|
||||
# CONFIG_AUFS_HNOTIFY is not set
|
||||
CONFIG_AUFS_EXPORT=y
|
||||
CONFIG_AUFS_INO_T_64=y
|
||||
CONFIG_AUFS_XATTR=y
|
||||
# CONFIG_AUFS_FHSM is not set
|
||||
# CONFIG_AUFS_RDU is not set
|
||||
CONFIG_AUFS_DIRREN=y
|
||||
# CONFIG_AUFS_SHWH is not set
|
||||
# CONFIG_AUFS_BR_RAMFS is not set
|
||||
# CONFIG_AUFS_BR_FUSE is not set
|
||||
CONFIG_AUFS_BR_HFSPLUS=y
|
||||
CONFIG_AUFS_BDEV_LOOP=y
|
||||
# CONFIG_AUFS_DEBUG is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=m
|
||||
CONFIG_NFS_V2=m
|
||||
|
@ -8178,6 +8182,7 @@ CONFIG_NFSD_PNFS=y
|
|||
CONFIG_NFSD_BLOCKLAYOUT=y
|
||||
CONFIG_NFSD_SCSILAYOUT=y
|
||||
CONFIG_NFSD_FLEXFILELAYOUT=y
|
||||
# CONFIG_NFSD_V4_2_INTER_SSC is not set
|
||||
CONFIG_NFSD_V4_SECURITY_LABEL=y
|
||||
CONFIG_GRACE_PERIOD=m
|
||||
CONFIG_LOCKD=m
|
||||
|
@ -8656,6 +8661,7 @@ CONFIG_DECOMPRESS_LZMA=y
|
|||
CONFIG_DECOMPRESS_XZ=y
|
||||
CONFIG_DECOMPRESS_LZO=y
|
||||
CONFIG_DECOMPRESS_LZ4=y
|
||||
CONFIG_DECOMPRESS_ZSTD=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_REED_SOLOMON=m
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
|
@ -8672,6 +8678,7 @@ CONFIG_ASSOCIATIVE_ARRAY=y
|
|||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_DMA_OPS=y
|
||||
CONFIG_NEED_SG_DMA_LENGTH=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
|
||||
|
@ -8715,6 +8722,7 @@ CONFIG_OID_REGISTRY=y
|
|||
CONFIG_UCS2_STRING=y
|
||||
CONFIG_HAVE_GENERIC_VDSO=y
|
||||
CONFIG_GENERIC_GETTIMEOFDAY=y
|
||||
CONFIG_GENERIC_VDSO_TIME_NS=y
|
||||
CONFIG_FONT_SUPPORT=y
|
||||
CONFIG_FONTS=y
|
||||
CONFIG_FONT_8x8=y
|
||||
|
@ -8765,6 +8773,7 @@ CONFIG_FRAME_WARN=2048
|
|||
# CONFIG_HEADERS_INSTALL is not set
|
||||
# CONFIG_DEBUG_SECTION_MISMATCH is not set
|
||||
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
|
||||
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set
|
||||
CONFIG_ARCH_WANT_FRAME_POINTERS=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
|
@ -8778,6 +8787,9 @@ CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
|
|||
CONFIG_MAGIC_SYSRQ_SERIAL=y
|
||||
CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_FS_ALLOW_ALL=y
|
||||
# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
|
||||
# CONFIG_DEBUG_FS_ALLOW_NONE is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
|
||||
|
@ -8819,7 +8831,6 @@ CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
|
|||
CONFIG_CC_HAS_KASAN_GENERIC=y
|
||||
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
|
||||
# CONFIG_KASAN is not set
|
||||
CONFIG_KASAN_STACK=1
|
||||
# end of Memory Debugging
|
||||
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
|
@ -8888,6 +8899,7 @@ CONFIG_HAVE_DEBUG_BUGVERBOSE=y
|
|||
CONFIG_TORTURE_TEST=m
|
||||
CONFIG_RCU_PERF_TEST=m
|
||||
CONFIG_RCU_TORTURE_TEST=m
|
||||
# CONFIG_RCU_REF_SCALE_TEST is not set
|
||||
CONFIG_RCU_CPU_STALL_TIMEOUT=60
|
||||
CONFIG_RCU_TRACE=y
|
||||
# CONFIG_RCU_EQS_DEBUG is not set
|
||||
|
@ -9000,12 +9012,23 @@ CONFIG_TEST_BLACKHOLE_DEV=m
|
|||
# CONFIG_SYSCTL_KUNIT_TEST is not set
|
||||
# CONFIG_LIST_KUNIT_TEST is not set
|
||||
# CONFIG_LINEAR_RANGES_TEST is not set
|
||||
# CONFIG_BITS_TEST is not set
|
||||
# CONFIG_TEST_UDELAY is not set
|
||||
# CONFIG_TEST_STATIC_KEYS is not set
|
||||
# CONFIG_TEST_KMOD is not set
|
||||
CONFIG_TEST_MEMCAT_P=m
|
||||
CONFIG_TEST_STACKINIT=m
|
||||
# CONFIG_TEST_MEMINIT is not set
|
||||
# CONFIG_TEST_FREE_PAGES is not set
|
||||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2504,7 +2504,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -9023,3 +9022,12 @@ CONFIG_TEST_STACKINIT=m
|
|||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1225,7 +1225,7 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
|||
CONFIG_RFKILL=y
|
||||
CONFIG_RFKILL_PM=y
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
# CONFIG_RFKILL_REGULATOR is not set
|
||||
# CONFIG_RFKILL_GPIO is not set
|
||||
# CONFIG_NET_9P is not set
|
||||
|
@ -1731,7 +1731,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
# CONFIG_DM_VERITY_AVB is not set
|
||||
# CONFIG_DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -6405,3 +6404,12 @@ CONFIG_FONT_8x8=y
|
|||
CONFIG_FONT_8x16=y
|
||||
# CONFIG_SG_SPLIT is not set
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2137,7 +2137,6 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
# CONFIG_FUSION is not set
|
||||
|
||||
#
|
||||
|
@ -7543,3 +7542,12 @@ CONFIG_TEST_STACKINIT=m
|
|||
CONFIG_MEMTEST=y
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.4.228 Kernel Configuration
|
||||
# Linux/arm64 4.4.243 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_64BIT=y
|
||||
|
@ -272,9 +272,9 @@ CONFIG_MODULE_UNLOAD=y
|
|||
# CONFIG_MODULE_COMPRESS is not set
|
||||
CONFIG_MODULES_TREE_LOOKUP=y
|
||||
CONFIG_BLOCK=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_BSGLIB is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
CONFIG_BLK_DEV_BSG=y
|
||||
CONFIG_BLK_DEV_BSGLIB=y
|
||||
CONFIG_BLK_DEV_INTEGRITY=y
|
||||
CONFIG_BLK_DEV_THROTTLING=y
|
||||
# CONFIG_BLK_CMDLINE_PARSER is not set
|
||||
|
||||
|
@ -1464,7 +1464,12 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_VERITY_AVB=m
|
||||
CONFIG_DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED=y
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_LOOPBACK_TARGET=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -3493,6 +3498,7 @@ CONFIG_USB_FUNCTIONFS_ETH=y
|
|||
CONFIG_USB_FUNCTIONFS_RNDIS=y
|
||||
CONFIG_USB_FUNCTIONFS_GENERIC=y
|
||||
CONFIG_USB_MASS_STORAGE=m
|
||||
CONFIG_USB_GADGET_TARGET=m
|
||||
CONFIG_USB_G_SERIAL=m
|
||||
CONFIG_USB_MIDI_GADGET=m
|
||||
# CONFIG_USB_G_PRINTER is not set
|
||||
|
|
|
@ -1727,7 +1727,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -5758,3 +5757,12 @@ CONFIG_SG_POOL=y
|
|||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_SBITMAP=y
|
||||
# CONFIG_STRING_SELFTEST is not set
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1714,7 +1714,7 @@ CONFIG_WIMAX=m
|
|||
CONFIG_WIMAX_DEBUG_LEVEL=8
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
CONFIG_RFKILL_GPIO=m
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
|
@ -2199,13 +2199,7 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
CONFIG_LOOPBACK_TARGET=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7819,3 +7813,12 @@ CONFIG_TEST_MEMCAT_P=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -1721,7 +1721,7 @@ CONFIG_WIMAX=m
|
|||
CONFIG_WIMAX_DEBUG_LEVEL=8
|
||||
CONFIG_RFKILL=m
|
||||
CONFIG_RFKILL_LEDS=y
|
||||
# CONFIG_RFKILL_INPUT is not set
|
||||
CONFIG_RFKILL_INPUT=y
|
||||
CONFIG_RFKILL_GPIO=m
|
||||
# CONFIG_NET_9P is not set
|
||||
# CONFIG_CAIF is not set
|
||||
|
@ -2206,13 +2206,7 @@ CONFIG_DM_VERITY_FEC=y
|
|||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
CONFIG_LOOPBACK_TARGET=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7889,3 +7883,12 @@ CONFIG_TEST_MEMCAT_P=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2221,13 +2221,7 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
# CONFIG_DM_INTEGRITY is not set
|
||||
CONFIG_DM_ZONED=m
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
CONFIG_LOOPBACK_TARGET=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7945,3 +7939,12 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
|||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2149,7 +2149,6 @@ CONFIG_DM_DUST=m
|
|||
# CONFIG_DM_LOG_WRITES is not set
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_DM_ZONED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7517,3 +7516,12 @@ CONFIG_TEST_STACKINIT=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2162,7 +2162,6 @@ CONFIG_DM_DUST=m
|
|||
# CONFIG_DM_LOG_WRITES is not set
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
# CONFIG_DM_ZONED is not set
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -7598,3 +7597,12 @@ CONFIG_TEST_STACKINIT=m
|
|||
# CONFIG_MEMTEST is not set
|
||||
# end of Kernel Testing and Coverage
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -2253,7 +2253,6 @@ CONFIG_DM_SWITCH=m
|
|||
CONFIG_DM_LOG_WRITES=m
|
||||
CONFIG_DM_INTEGRITY=m
|
||||
CONFIG_DM_ZONED=m
|
||||
# CONFIG_TARGET_CORE is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_NET_CORE=y
|
||||
|
@ -8012,3 +8011,12 @@ CONFIG_STRICT_DEVMEM=y
|
|||
# CONFIG_ARM64_RELOC_TEST is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
# end of Kernel hacking
|
||||
|
||||
## LinuxIO - iSCSI Target modules
|
||||
CONFIG_TARGET_CORE=m
|
||||
CONFIG_ISCSI_TARGET=m
|
||||
CONFIG_TCM_IBLOCK=m
|
||||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_USER2=m
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ case $BRANCH in
|
|||
current)
|
||||
|
||||
KERNELPATCHDIR='rockchip64-'$BRANCH
|
||||
KERNELBRANCH="branch:linux-5.8.y"
|
||||
KERNELBRANCH="branch:linux-5.9.y"
|
||||
LINUXFAMILY=rockchip64
|
||||
LINUXCONFIG='linux-rockchip64-'$BRANCH
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ unset LINUXFAMILY LINUXCONFIG KERNELDIR KERNELSOURCE KERNELBRANCH BOOTDIR BOOTSO
|
|||
PACKAGE_LIST_BOARD_REMOVE PACKAGE_LIST_FAMILY_REMOVE PACKAGE_LIST_DESKTOP_BOARD_REMOVE PACKAGE_LIST_DESKTOP_FAMILY_REMOVE BOOTCONFIG_DEV \
|
||||
DESKTOP_ENVIRONMENT DESKTOP_ENVIRONMENT_CONFIG_NAME DESKTOP_APPGROUPS_SELECTED DESKTOP_APT_FLAGS_SELECTED \
|
||||
DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH DESKTOP_ENVIRONMENT_DIRPATH DESKTOP_ENVIRONMENT_PACKAGE_LIST_DIRPATH \
|
||||
DESKTOP_CONFIG_PREFIX DESKTOP_CONFIGS_DIR DESKTOP_APPGROUPS_DIR DEBIAN_RECOMMENDS
|
||||
DESKTOP_CONFIG_PREFIX DESKTOP_CONFIGS_DIR DESKTOP_APPGROUPS_DIR DEBIAN_RECOMMENDS USE_OVERLAYFS
|
||||
}
|
||||
|
||||
pack_upload ()
|
||||
|
@ -343,7 +343,7 @@ function build_all()
|
|||
done
|
||||
|
||||
display_alert "Building ${n}."
|
||||
if [[ "$KERNEL_ONLY" == "no" ]]; then
|
||||
if [[ "$KERNEL_ONLY" == "no" && "${MULTITHREAD}" -gt 0 ]]; then
|
||||
build_main &
|
||||
else
|
||||
build_main
|
||||
|
|
|
@ -169,7 +169,7 @@ compile_uboot()
|
|||
# create patch for manual source changes
|
||||
[[ $CREATE_PATCHES == yes ]] && userpatch_create "u-boot"
|
||||
|
||||
if [[ -n $ATFSOURCE ]]; then
|
||||
if [[ -n $ATFSOURCE ]]; then
|
||||
cp -Rv "${atftempdir}"/*.bin .
|
||||
rm -rf "${atftempdir}"
|
||||
fi
|
||||
|
@ -275,7 +275,7 @@ compile_uboot()
|
|||
|
||||
[[ ! -f $uboottempdir/${uboot_name}.deb ]] && exit_with_error "Building u-boot package failed"
|
||||
|
||||
mv "$uboottempdir/${uboot_name}.deb" "${DEB_STORAGE}/"
|
||||
rsync -rq "$uboottempdir/${uboot_name}.deb" "${DEB_STORAGE}/"
|
||||
}
|
||||
|
||||
compile_kernel()
|
||||
|
@ -447,14 +447,14 @@ compile_kernel()
|
|||
|
||||
if [[ $BUILD_KSRC != no ]]; then
|
||||
fakeroot dpkg-deb -z0 -b "${sources_pkg_dir}" "${sources_pkg_dir}.deb"
|
||||
mv "${sources_pkg_dir}.deb" "${DEB_STORAGE}/"
|
||||
rsync -rq "${sources_pkg_dir}.deb" "${DEB_STORAGE}/"
|
||||
fi
|
||||
rm -rf "${sources_pkg_dir}"
|
||||
|
||||
cd .. || exit
|
||||
# remove firmare image packages here - easier than patching ~40 packaging scripts at once
|
||||
rm -f linux-firmware-image-*.deb
|
||||
mv ./*.deb "${DEB_STORAGE}/" || exit_with_error "Failed moving kernel DEBs"
|
||||
rsync -rq ./*.deb "${DEB_STORAGE}/" || exit_with_error "Failed moving kernel DEBs"
|
||||
|
||||
# store git hash to the file
|
||||
echo "${hash}" > "${SRC}/cache/hash"$([[ ${BETA} == yes ]] && echo "-beta")"/linux-image-${BRANCH}-${LINUXFAMILY}.githash"
|
||||
|
@ -516,7 +516,7 @@ compile_firmware()
|
|||
mv "armbian-firmware${FULL}" "armbian-firmware${FULL}_${REVISION}_all"
|
||||
fakeroot dpkg -b "armbian-firmware${FULL}_${REVISION}_all" >> "${DEST}"/debug/install.log 2>&1
|
||||
mv "armbian-firmware${FULL}_${REVISION}_all" "armbian-firmware${FULL}"
|
||||
mv "armbian-firmware${FULL}_${REVISION}_all.deb" "${DEB_STORAGE}/"
|
||||
rsync -rq "armbian-firmware${FULL}_${REVISION}_all.deb" "${DEB_STORAGE}/"
|
||||
|
||||
# remove temp directory
|
||||
rm -rf "${firmwaretempdir}"
|
||||
|
@ -564,7 +564,7 @@ compile_armbian-config()
|
|||
ln -sf /usr/sbin/softy "${tmpdir}"/usr/bin/softy
|
||||
|
||||
fakeroot dpkg -b "${tmpdir}" >/dev/null
|
||||
mv "${tmpdir}.deb" "${DEB_STORAGE}/"
|
||||
rsync -rq "${tmpdir}.deb" "${DEB_STORAGE}/"
|
||||
rm -rf "${tmpdir}"
|
||||
|
||||
}
|
||||
|
|
|
@ -53,10 +53,10 @@ debootstrap_ng()
|
|||
install_common
|
||||
|
||||
# install locally built packages
|
||||
[[ $EXTERNAL_NEW == compile ]] && chroot_installpackages_local
|
||||
[[ $EXTERNAL_NEW == compile ]] && chroot_installpackages_local >> "${DEST}"/debug/install.log 2>&1
|
||||
|
||||
# install from apt.armbian.com
|
||||
[[ $EXTERNAL_NEW == prebuilt ]] && chroot_installpackages "yes"
|
||||
[[ $EXTERNAL_NEW == prebuilt ]] && chroot_installpackages "yes" >> "${DEST}"/debug/install.log 2>&1
|
||||
|
||||
# stage: user customization script
|
||||
# NOTE: installing too many packages may fill tmpfs mount
|
||||
|
@ -273,8 +273,10 @@ create_rootfs_cache()
|
|||
chroot $SDCARD /bin/bash -c "apt-get clean"
|
||||
|
||||
# DEBUG: print free space
|
||||
echo -e "\nFree space:"
|
||||
eval 'df -h' ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/debootstrap.log'}
|
||||
local freespace=$(LC_ALL=C df -h)
|
||||
echo $freespace >> $DEST/debug/debootstrap.log
|
||||
display_alert "SD" "$(echo -e "$freespace" | grep $SDCARD | awk '{print $5}')" "info"
|
||||
display_alert "Mount point" "$(echo -e "$freespace" | grep $MOUNT | awk '{print $5}')" "info"
|
||||
|
||||
# create list of installed packages for debug purposes
|
||||
chroot $SDCARD /bin/bash -c "dpkg --get-selections" | grep -v deinstall | awk '{print $1}' | cut -f1 -d':' > ${cache_fname}.list 2>&1
|
||||
|
@ -619,9 +621,9 @@ create_image()
|
|||
[[ $ROOTFS_TYPE == nfs ]] && version=${version}_nfsboot
|
||||
|
||||
if [[ $ROOTFS_TYPE != nfs ]]; then
|
||||
display_alert "Copying files to root directory"
|
||||
display_alert "Copying files to" "/"
|
||||
rsync -aHWXh --exclude="/boot/*" --exclude="/dev/*" --exclude="/proc/*" --exclude="/run/*" --exclude="/tmp/*" \
|
||||
--exclude="/sys/*" --info=progress2,stats1 $SDCARD/ $MOUNT/
|
||||
--exclude="/sys/*" --info=progress2,stats1 $SDCARD/ $MOUNT/ >> "${DEST}"/debug/install.log 2>&1
|
||||
else
|
||||
display_alert "Creating rootfs archive" "rootfs.tgz" "info"
|
||||
tar cp --xattrs --directory=$SDCARD/ --exclude='./boot/*' --exclude='./dev/*' --exclude='./proc/*' --exclude='./run/*' --exclude='./tmp/*' \
|
||||
|
@ -629,21 +631,23 @@ create_image()
|
|||
fi
|
||||
|
||||
# stage: rsync /boot
|
||||
display_alert "Copying files to /boot directory"
|
||||
display_alert "Copying files to" "/boot"
|
||||
if [[ $(findmnt --target $MOUNT/boot -o FSTYPE -n) == vfat ]]; then
|
||||
# fat32
|
||||
rsync -rLtWh --info=progress2,stats1 $SDCARD/boot $MOUNT
|
||||
rsync -rLtWh --info=progress2,stats1 $SDCARD/boot $MOUNT >> "${DEST}"/debug/install.log 2>&1
|
||||
else
|
||||
# ext4
|
||||
rsync -aHWXh --info=progress2,stats1 $SDCARD/boot $MOUNT
|
||||
rsync -aHWXh --info=progress2,stats1 $SDCARD/boot $MOUNT >> "${DEST}"/debug/install.log 2>&1
|
||||
fi
|
||||
|
||||
# stage: create final initramfs
|
||||
update_initramfs $MOUNT
|
||||
|
||||
# DEBUG: print free space
|
||||
display_alert "Free space:" "SD card" "info"
|
||||
eval 'df -h' ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/debootstrap.log'}
|
||||
local freespace=$(LC_ALL=C df -h)
|
||||
echo $freespace >> $DEST/debug/debootstrap.log
|
||||
display_alert "SD" "$(echo -e "$freespace" | grep $SDCARD | awk '{print $5}')" "info"
|
||||
display_alert "Mount point" "$(echo -e "$freespace" | grep $MOUNT | awk '{print $5}')" "info"
|
||||
|
||||
# stage: write u-boot
|
||||
write_uboot $LOOP
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
# install_common
|
||||
# install_rclocal
|
||||
|
@ -247,7 +246,8 @@ install_common()
|
|||
chroot "${SDCARD}" /bin/bash -c "apt-get -qq -y install linux-u-boot-${BOARD}-${BRANCH}" >> "${DEST}"/debug/install.log 2>&1
|
||||
# we need package later, move to output, apt-get must be here, apt deletes file
|
||||
UPSTREM_VER=$(dpkg-deb -I "${SDCARD}"/var/cache/apt/archives/linux-u-boot-${BOARD}-${BRANCH}*_${ARCH}.deb | grep Version | awk '{print $(NF)}')
|
||||
mv "${SDCARD}"/var/cache/apt/archives/linux-u-boot-${BOARD}-${BRANCH}*_${ARCH}.deb ${DEB_STORAGE}/${CHOSEN_UBOOT}_${UPSTREM_VER}_${ARCH}.deb
|
||||
rsync -rq "${SDCARD}"/var/cache/apt/archives/linux-u-boot-${BOARD}-${BRANCH}*_${ARCH}.deb ${DEB_STORAGE}/${CHOSEN_UBOOT}_${UPSTREM_VER}_${ARCH}.deb
|
||||
[[ $? -ne 0 ]] && exit_with_error "U-boot linux-u-boot-${BOARD}-${BRANCH}*_${ARCH}.deb download failed"
|
||||
fi
|
||||
|
||||
# install kernel
|
||||
|
|
|
@ -990,12 +990,12 @@ prepare_host()
|
|||
display_alert "Build host OS release" "${codename:-(unknown)}" "info"
|
||||
|
||||
# Ubuntu Focal x86_64 is the only fully supported host OS release
|
||||
# Ubuntu Bionic x86_64 support is legacy until it breaks
|
||||
# Ubuntu Bionic x86_64 support is no longer supported
|
||||
# Using Docker/VirtualBox/Vagrant is the only supported way to run the build script on other Linux distributions
|
||||
#
|
||||
# NO_HOST_RELEASE_CHECK overrides the check for a supported host system
|
||||
# Disable host OS check at your own risk, any issues reported with unsupported releases will be closed without a discussion
|
||||
if [[ -z $codename || "bionic buster groovy focal debbie tricia ulyana" != *"$codename"* ]]; then
|
||||
if [[ -z $codename || "buster groovy focal debbie tricia ulyana" != *"$codename"* ]]; then
|
||||
if [[ $NO_HOST_RELEASE_CHECK == yes ]]; then
|
||||
display_alert "You are running on an unsupported system" "${codename:-(unknown)}" "wrn"
|
||||
display_alert "Do not report any errors, warnings or other issues encountered beyond this point" "" "wrn"
|
||||
|
|
|
@ -307,7 +307,7 @@ fi
|
|||
display_alert "Building package" "$CHOSEN_ROOTFS" "info"
|
||||
fakeroot dpkg-deb -b "${destination}" "${destination}.deb" >> "${DEST}"/debug/install.log 2>&1
|
||||
mkdir -p "${DEB_STORAGE}/${RELEASE}/"
|
||||
mv "${destination}.deb" "${DEB_STORAGE}/${RELEASE}/"
|
||||
rsync -rq --delete-after "${destination}.deb" "${DEB_STORAGE}/${RELEASE}/"
|
||||
# cleanup
|
||||
rm -rf "${destination}"
|
||||
}
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
From bf967280def5ef5fe6e4cf1ce27196a9eb988cf5 Mon Sep 17 00:00:00 2001
|
||||
From: Dan Johansen <strit@manjaro.org>
|
||||
Date: Sat, 30 May 2020 17:19:41 +0200
|
||||
Subject: [PATCH] arm64-dts-rockchip-add-cw2015-node-to-PBP
|
||||
|
||||
---
|
||||
.../boot/dts/rockchip/rk3399-pinebook-pro.dts | 26 +++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
|
||||
index c49982dfd8fc..e814917c013b 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
|
||||
@@ -28,6 +28,13 @@ backlight: edp-backlight {
|
||||
pwms = <&pwm0 0 740740 0>;
|
||||
};
|
||||
|
||||
+ bat: battery {
|
||||
+ compatible = "simple-battery";
|
||||
+ charge-full-design-microamp-hours = <9800000>;
|
||||
+ voltage-max-design-microvolt = <4350000>;
|
||||
+ voltage-min-design-microvolt = <3000000>;
|
||||
+ };
|
||||
+
|
||||
edp_panel: edp-panel {
|
||||
compatible = "boe,nv140fhmn49";
|
||||
backlight = <&backlight>;
|
||||
@@ -741,6 +748,25 @@ usbc_dp: endpoint {
|
||||
};
|
||||
};
|
||||
};
|
||||
+
|
||||
+ cw2015@62 {
|
||||
+ compatible = "cellwise,cw2015";
|
||||
+ reg = <0x62>;
|
||||
+ cellwise,battery-profile = /bits/ 8 <
|
||||
+ 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
|
||||
+ 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
|
||||
+ 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
|
||||
+ 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
|
||||
+ 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
|
||||
+ 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
|
||||
+ 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
|
||||
+ 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
|
||||
+ >;
|
||||
+ cellwise,monitor-interval-ms = <5000>;
|
||||
+ monitored-battery = <&bat>;
|
||||
+ power-supplies = <&mains_charger>, <&fusb0>;
|
||||
+ };
|
||||
+
|
||||
};
|
||||
|
||||
&i2s1 {
|
||||
--
|
||||
2.26.2
|
||||
|
|
@ -281,13 +281,14 @@ index 82b19ebd7838..6f00b17afc15 100644
|
|||
pmdata->altmodes, paltmode->svid,
|
||||
paltmode->mode, paltmode->vdo);
|
||||
|
||||
@@ -1064,6 +1101,9 @@ static void tcpm_register_partner_altmodes(struct tcpm_port *port)
|
||||
if (!altmode)
|
||||
@@ -1064,7 +1101,9 @@ static void tcpm_register_partner_altmodes(struct tcpm_port *port)
|
||||
tcpm_log(port, "Failed to register partner SVID 0x%04x",
|
||||
modep->altmode_desc[i].svid);
|
||||
+ else
|
||||
altmode = NULL;
|
||||
- }
|
||||
+ } else {
|
||||
+ tcpm_log(port, "Registered altmode 0x%04x", modep->altmode_desc[i].svid);
|
||||
+
|
||||
+ }
|
||||
port->partner_altmode[i] = altmode;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -422,7 +422,7 @@ index 000000000..36890bb7f
|
|||
+ compatible = "regulator-fixed";
|
||||
+ gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sdmmc0m1_gpio>;
|
||||
+ pinctrl-0 = <&sdmmc0m1_pin>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-name = "vcc_sd";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
|
|
|
@ -98,7 +98,7 @@ index 000000000..52732643f
|
|||
+ compatible = "regulator-fixed";
|
||||
+ gpio = <&gpio0 30 GPIO_ACTIVE_LOW>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sdmmc0m1_gpio>;
|
||||
+ pinctrl-0 = <&sdmmc0m1_pin>;
|
||||
+ regulator-name = "vcc_sd";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
|
|
|
@ -8,9 +8,9 @@ index 1abf76be2..7ad8b090c 100644
|
|||
|
||||
+source "drivers/staging/fusb30x/Kconfig"
|
||||
+
|
||||
source "drivers/staging/wilc1000/Kconfig"
|
||||
|
||||
source "drivers/staging/most/Kconfig"
|
||||
|
||||
source "drivers/staging/ks7010/Kconfig"
|
||||
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
|
||||
index ab0cbe881..2e308d901 100644
|
||||
--- a/drivers/staging/Makefile
|
||||
|
@ -20,9 +20,9 @@ index ab0cbe881..2e308d901 100644
|
|||
obj-$(CONFIG_FB_TFT) += fbtft/
|
||||
obj-$(CONFIG_FSL_DPAA2) += fsl-dpaa2/
|
||||
+obj-$(CONFIG_FUSB_30X) += fusb30x/
|
||||
obj-$(CONFIG_WILC1000) += wilc1000/
|
||||
obj-$(CONFIG_MOST) += most/
|
||||
obj-$(CONFIG_KS7010) += ks7010/
|
||||
obj-$(CONFIG_GREYBUS) += greybus/
|
||||
diff --git a/drivers/staging/fusb30x/Kconfig b/drivers/staging/fusb30x/Kconfig
|
||||
new file mode 100644
|
||||
index 000000000..5bb75270f
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
This patch reverts: https://github.com/torvalds/linux/commit/eaf4fac478077d4ed57cbca2c044c4b58a96bd98
|
||||
|
||||
It works around following issues:
|
||||
- no way to change MTU (tx_fifo_size is reported as 0 for Rockchip's dwmac)
|
||||
- no way to set MTU of 1500 (it is aligned to 1536)
|
||||
|
||||
Signed-off-by: Piotr Szczepanik <piter75@gmail.com>
|
||||
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
index 122a06972..951d2281f 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -3961,24 +3961,12 @@ static void stmmac_set_rx_mode(struct net_device *dev)
|
||||
static int stmmac_change_mtu(struct net_device *dev, int new_mtu)
|
||||
{
|
||||
struct stmmac_priv *priv = netdev_priv(dev);
|
||||
- int txfifosz = priv->plat->tx_fifo_size;
|
||||
-
|
||||
- if (txfifosz == 0)
|
||||
- txfifosz = priv->dma_cap.tx_fifo_size;
|
||||
-
|
||||
- txfifosz /= priv->plat->tx_queues_to_use;
|
||||
|
||||
if (netif_running(dev)) {
|
||||
netdev_err(priv->dev, "must be stopped to change its MTU\n");
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
- new_mtu = STMMAC_ALIGN(new_mtu);
|
||||
-
|
||||
- /* If condition true, FIFO is too small or MTU too large */
|
||||
- if ((txfifosz < new_mtu) || (new_mtu > BUF_SIZE_16KiB))
|
||||
- return -EINVAL;
|
||||
-
|
||||
dev->mtu = new_mtu;
|
||||
|
||||
netdev_update_features(dev);
|
|
@ -4,10 +4,10 @@ that got backported into both 5.8.17 and 5.9.2
|
|||
Without it rk808 used by all rk3399 boards fails to be probed.
|
||||
|
||||
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
|
||||
index dababe5b7..18f6d04cd 100644
|
||||
index 4859cf84c..b6dcbb779 100644
|
||||
--- a/drivers/regulator/core.c
|
||||
+++ b/drivers/regulator/core.c
|
||||
@@ -5187,20 +5187,15 @@ regulator_register(const struct regulator_desc *regulator_desc,
|
||||
@@ -5256,20 +5256,15 @@ regulator_register(const struct regulator_desc *regulator_desc,
|
||||
else if (regulator_desc->supply_name)
|
||||
rdev->supply_name = regulator_desc->supply_name;
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ index e69de29..576e190 100644
|
|||
+ rockchip-spi-jedec-nor.dtbo \
|
||||
+ rockchip-spi-spidev.dtbo \
|
||||
+ rockchip-uart4.dtbo \
|
||||
+ rockchip-dwc3-0-host.dtbo \
|
||||
+ rockchip-w1-gpio.dtbo
|
||||
+
|
||||
+scr-$(CONFIG_ARCH_ROCKCHIP) += \
|
||||
|
@ -133,6 +134,13 @@ index e69de29..9512445 100644
|
|||
+Notice: UART4 cannot be activated together with SPI1 - they share the sam pins.
|
||||
+Enabling this overlay disables SPI1.
|
||||
+
|
||||
+### dwc3-0-host
|
||||
+
|
||||
+Forces port 0 of the DesignWare xHCI controller to host mode.
|
||||
+
|
||||
+This can be used on plaforms such as NanoPC-T4, where devices plugged into the
|
||||
+USB-C port may not be detected otherwise.
|
||||
+
|
||||
+### w1-gpio
|
||||
+
|
||||
+Activates 1-Wire GPIO master
|
||||
|
@ -448,6 +456,25 @@ index 0000000..fe8fb14
|
|||
+ };
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/overlay/rockchip-dwc3-0-host.dts b/arch/arm64/boot/dts/rockchip/overlay/rockchip-dwc3-0-host.dts
|
||||
new file mode 100644
|
||||
index 0000000..abcd123
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/overlay/rockchip-dwc3-0-host.dts
|
||||
@@ -0,0 +1,13 @@
|
||||
+/dts-v1/;
|
||||
+/plugin/;
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "rockchip,rk3399";
|
||||
+
|
||||
+ fragment@0 {
|
||||
+ target = <&usbdrd_dwc3_0>;
|
||||
+ __overlay__ {
|
||||
+ dr_mode = "host";
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/overlay/rockchip-w1-gpio.dts b/arch/arm64/boot/dts/rockchip/overlay/rockchip-w1-gpio.dts
|
||||
new file mode 100644
|
||||
index 0000000..bfbc16a
|
||||
|
|
|
@ -20,7 +20,7 @@ index f4b6799a8..a1041ec3e 100644
|
|||
- gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
|
||||
+ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc0m1_gpio>;
|
||||
pinctrl-0 = <&sdmmc0m1_pin>;
|
||||
regulator-boot-on;
|
||||
regulator-name = "vcc_sd";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
From 6376a1b0e30a1d30c4269083fb5b9a146a944ada Mon Sep 17 00:00:00 2001
|
||||
From: Ziyuan Xu <xzy.xu@rock-chips.com>
|
||||
Date: Wed, 28 Nov 2018 17:39:50 +0800
|
||||
Subject: [PATCH] Revert "clk: rockchip: fix wrong mmc phase shift for rk3328"
|
||||
|
||||
This reverts commit 4ef244988993afc8a6447e990a4ccb4a223d3f20.
|
||||
|
||||
The description for CRU_EMMC/SDMMC/SDIO_CON[0/1] is jumble on
|
||||
chapters, make it clear that the correct shift is 1 that from
|
||||
IC engineer.
|
||||
|
||||
Change-Id: I48dce293ec6ef82a5c78db38efc083227776ea99
|
||||
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
|
||||
---
|
||||
drivers/clk/rockchip/clk-rk3328.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/clk/rockchip/clk-rk3328.c b/drivers/clk/rockchip/clk-rk3328.c
|
||||
index ac6e6163a232..d77925271198 100644
|
||||
--- a/drivers/clk/rockchip/clk-rk3328.c
|
||||
+++ b/drivers/clk/rockchip/clk-rk3328.c
|
||||
@@ -809,22 +809,22 @@ static struct rockchip_clk_branch rk3328_clk_branches[] __initdata = {
|
||||
MMC(SCLK_SDMMC_DRV, "sdmmc_drv", "clk_sdmmc",
|
||||
RK3328_SDMMC_CON0, 1),
|
||||
MMC(SCLK_SDMMC_SAMPLE, "sdmmc_sample", "clk_sdmmc",
|
||||
- RK3328_SDMMC_CON1, 0),
|
||||
+ RK3328_SDMMC_CON1, 1),
|
||||
|
||||
MMC(SCLK_SDIO_DRV, "sdio_drv", "clk_sdio",
|
||||
RK3328_SDIO_CON0, 1),
|
||||
MMC(SCLK_SDIO_SAMPLE, "sdio_sample", "clk_sdio",
|
||||
- RK3328_SDIO_CON1, 0),
|
||||
+ RK3328_SDIO_CON1, 1),
|
||||
|
||||
MMC(SCLK_EMMC_DRV, "emmc_drv", "clk_emmc",
|
||||
RK3328_EMMC_CON0, 1),
|
||||
MMC(SCLK_EMMC_SAMPLE, "emmc_sample", "clk_emmc",
|
||||
- RK3328_EMMC_CON1, 0),
|
||||
+ RK3328_EMMC_CON1, 1),
|
||||
|
||||
MMC(SCLK_SDMMC_EXT_DRV, "sdmmc_ext_drv", "clk_sdmmc_ext",
|
||||
RK3328_SDMMC_EXT_CON0, 1),
|
||||
MMC(SCLK_SDMMC_EXT_SAMPLE, "sdmmc_ext_sample", "clk_sdmmc_ext",
|
||||
- RK3328_SDMMC_EXT_CON1, 0),
|
||||
+ RK3328_SDMMC_EXT_CON1, 1),
|
||||
};
|
||||
|
||||
static const char *const rk3328_critical_clocks[] __initconst = {
|
|
@ -1,182 +1,3 @@
|
|||
From bbfdef43b6f4a65b960ebe6e540233a4c26e9374 Mon Sep 17 00:00:00 2001
|
||||
From: Ezequiel Garcia <ezequiel@collabora.com>
|
||||
Date: Fri, 26 Jun 2020 14:11:29 -0300
|
||||
Subject: [PATCH 01/18] rkvdec: h264: Refuse to decode unsupported bitstream
|
||||
|
||||
The hardware only supports 4:2:2, 4:2:0 or 4:0:0 (monochrome),
|
||||
8-bit or 10-bit depth content.
|
||||
|
||||
Verify that the PPS refers to a supported bitstream, and refuse
|
||||
unsupported bitstreams by failing at TRY_EXT_CTRLS time.
|
||||
|
||||
The driver is currently broken on 10-bit and 4:2:2
|
||||
so disallow those as well.
|
||||
|
||||
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
|
||||
---
|
||||
drivers/staging/media/rkvdec/rkvdec.c | 27 +++++++++++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
|
||||
diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
|
||||
index 225eeca73356..0f81b47792f6 100644
|
||||
--- a/drivers/staging/media/rkvdec/rkvdec.c
|
||||
+++ b/drivers/staging/media/rkvdec/rkvdec.c
|
||||
@@ -27,6 +27,32 @@
|
||||
#include "rkvdec.h"
|
||||
#include "rkvdec-regs.h"
|
||||
|
||||
+static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl)
|
||||
+{
|
||||
+ if (ctrl->id == V4L2_CID_MPEG_VIDEO_H264_SPS) {
|
||||
+ const struct v4l2_ctrl_h264_sps *sps = ctrl->p_cur.p;
|
||||
+ /*
|
||||
+ * TODO: The hardware supports 10-bit and 4:2:2 profiles,
|
||||
+ * but it's currently broken in the driver.
|
||||
+ * Reject them for now, until it's fixed.
|
||||
+ */
|
||||
+ if (sps->chroma_format_idc > 1)
|
||||
+ /* Only 4:0:0 and 4:2:0 are supported */
|
||||
+ return -EINVAL;
|
||||
+ if (sps->bit_depth_luma_minus8 != sps->bit_depth_chroma_minus8)
|
||||
+ /* Luma and chroma bit depth mismatch */
|
||||
+ return -EINVAL;
|
||||
+ if (sps->bit_depth_luma_minus8 != 0)
|
||||
+ /* Only 8-bit is supported */
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static const struct v4l2_ctrl_ops rkvdec_ctrl_ops = {
|
||||
+ .try_ctrl = rkvdec_try_ctrl,
|
||||
+};
|
||||
+
|
||||
static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = {
|
||||
{
|
||||
.per_request = true,
|
||||
@@ -42,6 +68,7 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = {
|
||||
.per_request = true,
|
||||
.mandatory = true,
|
||||
.cfg.id = V4L2_CID_MPEG_VIDEO_H264_SPS,
|
||||
+ .cfg.ops = &rkvdec_ctrl_ops,
|
||||
},
|
||||
{
|
||||
.per_request = true,
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
||||
From 843e3576055776df5cafb3f8e28ea08f9fa71e9a Mon Sep 17 00:00:00 2001
|
||||
From: Ezequiel Garcia <ezequiel@collabora.com>
|
||||
Date: Fri, 26 Jun 2020 14:11:30 -0300
|
||||
Subject: [PATCH 02/18] hantro: h264: Refuse to decode unsupported bitstream
|
||||
|
||||
The hardware only supports 4:2:0 or 4:0:0 (monochrome),
|
||||
8-bit depth content.
|
||||
|
||||
Verify that the PPS refers to a supported bitstream, and refuse
|
||||
unsupported bitstreams by failing at TRY_EXT_CTRLS time.
|
||||
|
||||
Given the JPEG compression level control is the only one
|
||||
that needs setting, a specific ops is provided.
|
||||
|
||||
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
|
||||
---
|
||||
drivers/staging/media/hantro/hantro_drv.c | 29 ++++++++++++++++++++---
|
||||
1 file changed, 26 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
|
||||
index 0db8ad455160..361ffaa821ef 100644
|
||||
--- a/drivers/staging/media/hantro/hantro_drv.c
|
||||
+++ b/drivers/staging/media/hantro/hantro_drv.c
|
||||
@@ -261,7 +261,25 @@ queue_init(void *priv, struct vb2_queue *src_vq, struct vb2_queue *dst_vq)
|
||||
return vb2_queue_init(dst_vq);
|
||||
}
|
||||
|
||||
-static int hantro_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
+static int hantro_try_ctrl(struct v4l2_ctrl *ctrl)
|
||||
+{
|
||||
+ if (ctrl->id == V4L2_CID_MPEG_VIDEO_H264_SPS) {
|
||||
+ const struct v4l2_ctrl_h264_sps *sps = ctrl->p_cur.p;
|
||||
+
|
||||
+ if (sps->chroma_format_idc > 1)
|
||||
+ /* Only 4:0:0 and 4:2:0 are supported */
|
||||
+ return -EINVAL;
|
||||
+ if (sps->bit_depth_luma_minus8 != sps->bit_depth_chroma_minus8)
|
||||
+ /* Luma and chroma bit depth mismatch */
|
||||
+ return -EINVAL;
|
||||
+ if (sps->bit_depth_luma_minus8 != 0)
|
||||
+ /* Only 8-bit is supported */
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int hantro_jpeg_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
{
|
||||
struct hantro_ctx *ctx;
|
||||
|
||||
@@ -282,7 +300,11 @@ static int hantro_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||
}
|
||||
|
||||
static const struct v4l2_ctrl_ops hantro_ctrl_ops = {
|
||||
- .s_ctrl = hantro_s_ctrl,
|
||||
+ .try_ctrl = hantro_try_ctrl,
|
||||
+};
|
||||
+
|
||||
+static const struct v4l2_ctrl_ops hantro_jpeg_ctrl_ops = {
|
||||
+ .s_ctrl = hantro_jpeg_s_ctrl,
|
||||
};
|
||||
|
||||
static const struct hantro_ctrl controls[] = {
|
||||
@@ -294,7 +316,7 @@ static const struct hantro_ctrl controls[] = {
|
||||
.max = 100,
|
||||
.step = 1,
|
||||
.def = 50,
|
||||
- .ops = &hantro_ctrl_ops,
|
||||
+ .ops = &hantro_jpeg_ctrl_ops,
|
||||
},
|
||||
}, {
|
||||
.codec = HANTRO_MPEG2_DECODER,
|
||||
@@ -325,6 +347,7 @@ static const struct hantro_ctrl controls[] = {
|
||||
.codec = HANTRO_H264_DECODER,
|
||||
.cfg = {
|
||||
.id = V4L2_CID_MPEG_VIDEO_H264_SPS,
|
||||
+ .ops = &hantro_ctrl_ops,
|
||||
},
|
||||
}, {
|
||||
.codec = HANTRO_H264_DECODER,
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
||||
From 22400b16c3d7af8cf3b044277264cc5fc3a07c54 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Sun, 5 Jul 2020 21:48:56 +0000
|
||||
Subject: [PATCH 03/18] fixup! rkvdec: h264: Refuse to decode unsupported
|
||||
bitstream
|
||||
|
||||
---
|
||||
drivers/staging/media/rkvdec/rkvdec.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
|
||||
index 0f81b47792f6..55dc27171ce4 100644
|
||||
--- a/drivers/staging/media/rkvdec/rkvdec.c
|
||||
+++ b/drivers/staging/media/rkvdec/rkvdec.c
|
||||
@@ -30,7 +30,7 @@
|
||||
static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl)
|
||||
{
|
||||
if (ctrl->id == V4L2_CID_MPEG_VIDEO_H264_SPS) {
|
||||
- const struct v4l2_ctrl_h264_sps *sps = ctrl->p_cur.p;
|
||||
+ const struct v4l2_ctrl_h264_sps *sps = ctrl->p_new.p;
|
||||
/*
|
||||
* TODO: The hardware supports 10-bit and 4:2:2 profiles,
|
||||
* but it's currently broken in the driver.
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
||||
From 974229575250290e49d004933cb0aade87fa4566 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Mon, 6 Jul 2020 21:54:33 +0000
|
||||
|
@ -294,7 +115,7 @@ index 4ab8f7e0566b..7a9f78bc0a55 100644
|
|||
+ struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl);
|
||||
+
|
||||
if (ctrl->id == V4L2_CID_MPEG_VIDEO_H264_SPS) {
|
||||
const struct v4l2_ctrl_h264_sps *sps = ctrl->p_new.p;
|
||||
const struct v4l2_ctrl_h264_sps *sps = ctrl->p_new.p_h264_sps;
|
||||
+ unsigned int width, height;
|
||||
/*
|
||||
* TODO: The hardware supports 10-bit and 4:2:2 profiles,
|
||||
|
@ -1256,110 +1077,6 @@ index 4faee9262392..b21031535330 100644
|
|||
2.25.1
|
||||
|
||||
|
||||
From 4bf8f995e8b6f06db483cee2952de5662bb5cf37 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Davis <ben.davis@arm.com>
|
||||
Date: Mon, 1 Jun 2020 17:28:17 +0100
|
||||
Subject: [PATCH 16/18] drm: drm_fourcc: add NV15, Q410, Q401 YUV formats
|
||||
|
||||
DRM_FORMAT_NV15 is a 2 plane format suitable for linear and 16x16
|
||||
block-linear memory layouts (DRM_FORMAT_MOD_SAMSUNG_16_16_TILE). The
|
||||
format is similar to P010 with 4:2:0 sub-sampling but has no padding
|
||||
between components. Instead, luminance and chrominance samples are
|
||||
grouped into 4s so that each group is packed into an integer number
|
||||
of bytes:
|
||||
|
||||
YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes
|
||||
|
||||
The '15' suffix refers to the optimum effective bits per pixel which is
|
||||
achieved when the total number of luminance samples is a multiple of 8.
|
||||
|
||||
Q410 and Q401 are both 3 plane non-subsampled formats with 16 bits per
|
||||
component, but only 10 bits are used and 6 are padded. 'Q' is chosen
|
||||
as the first letter to denote 3 plane YUV444, (and is the next letter
|
||||
along from P which is usually 2 plane).
|
||||
|
||||
V2: Updated block_w of NV15 to {4, 2, 0}
|
||||
V3: Updated commit message to include specific modifier name
|
||||
|
||||
NV15:
|
||||
Tested-by: Jonas Karlman <jonas@kwiboo.se>
|
||||
|
||||
Reviewed-by: Brian Starkey <brian.starkey@arm.com>
|
||||
Signed-off-by: Ben Davis <ben.davis@arm.com>
|
||||
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
|
||||
Link: https://patchwork.freedesktop.org/patch/msgid/20200601162817.18230-1-ben.davis@arm.com
|
||||
---
|
||||
drivers/gpu/drm/drm_fourcc.c | 12 ++++++++++++
|
||||
include/uapi/drm/drm_fourcc.h | 22 ++++++++++++++++++++++
|
||||
2 files changed, 34 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
|
||||
index b234bfaeda06..722c7ebe4e88 100644
|
||||
--- a/drivers/gpu/drm/drm_fourcc.c
|
||||
+++ b/drivers/gpu/drm/drm_fourcc.c
|
||||
@@ -274,6 +274,18 @@ const struct drm_format_info *__drm_format_info(u32 format)
|
||||
{ .format = DRM_FORMAT_YUV420_10BIT, .depth = 0,
|
||||
.num_planes = 1, .cpp = { 0, 0, 0 }, .hsub = 2, .vsub = 2,
|
||||
.is_yuv = true },
|
||||
+ { .format = DRM_FORMAT_NV15, .depth = 0,
|
||||
+ .num_planes = 2, .char_per_block = { 5, 5, 0 },
|
||||
+ .block_w = { 4, 2, 0 }, .block_h = { 1, 1, 0 }, .hsub = 2,
|
||||
+ .vsub = 2, .is_yuv = true },
|
||||
+ { .format = DRM_FORMAT_Q410, .depth = 0,
|
||||
+ .num_planes = 3, .char_per_block = { 2, 2, 2 },
|
||||
+ .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 0,
|
||||
+ .vsub = 0, .is_yuv = true },
|
||||
+ { .format = DRM_FORMAT_Q401, .depth = 0,
|
||||
+ .num_planes = 3, .char_per_block = { 2, 2, 2 },
|
||||
+ .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 0,
|
||||
+ .vsub = 0, .is_yuv = true },
|
||||
};
|
||||
|
||||
unsigned int i;
|
||||
diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
|
||||
index 490143500a50..8ba2d9153a94 100644
|
||||
--- a/include/uapi/drm/drm_fourcc.h
|
||||
+++ b/include/uapi/drm/drm_fourcc.h
|
||||
@@ -236,6 +236,12 @@ extern "C" {
|
||||
#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
|
||||
#define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
|
||||
#define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
|
||||
+/*
|
||||
+ * 2 plane YCbCr
|
||||
+ * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian
|
||||
+ * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian
|
||||
+ */
|
||||
+#define DRM_FORMAT_NV15 fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */
|
||||
|
||||
/*
|
||||
* 2 plane YCbCr MSB aligned
|
||||
@@ -265,6 +271,22 @@ extern "C" {
|
||||
*/
|
||||
#define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
|
||||
|
||||
+/* 3 plane non-subsampled (444) YCbCr
|
||||
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
|
||||
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
|
||||
+ * index 1: Cb plane, [15:0] Cb:x [10:6] little endian
|
||||
+ * index 2: Cr plane, [15:0] Cr:x [10:6] little endian
|
||||
+ */
|
||||
+#define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
|
||||
+
|
||||
+/* 3 plane non-subsampled (444) YCrCb
|
||||
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
|
||||
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
|
||||
+ * index 1: Cr plane, [15:0] Cr:x [10:6] little endian
|
||||
+ * index 2: Cb plane, [15:0] Cb:x [10:6] little endian
|
||||
+ */
|
||||
+#define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
|
||||
+
|
||||
/*
|
||||
* 3 plane YCbCr
|
||||
* index 0: Y plane, [7:0] Y
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
||||
From 588b8545dda3cd0ef8f066dcafff3fa7a93e4056 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Mon, 6 Jul 2020 22:30:13 +0000
|
||||
|
|
|
@ -73,7 +73,7 @@ index 26af951be980..d2613ec774c1 100644
|
|||
+ resets = <&cru SRST_TSADC>;
|
||||
+ reset-names = "tsadc-apb";
|
||||
+ pinctrl-names = "gpio", "otpout";
|
||||
+ pinctrl-0 = <&tsadc_otp_gpio>;
|
||||
+ pinctrl-0 = <&tsadc_otp_pin>;
|
||||
+ pinctrl-1 = <&tsadc_otp_out>;
|
||||
+ #thermal-sensor-cells = <1>;
|
||||
+ rockchip,hw-tshut-temp = <120000>;
|
||||
|
|
|
@ -86,6 +86,7 @@ index e26e72e3315f..db130be87d47 100644
|
|||
pinctrl-0 = <&i2s_8ch_0_sclktx
|
||||
&i2s_8ch_0_sclkrx
|
||||
diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c
|
||||
index 61c984f10d8e..e6125ebfe5a9 100644
|
||||
--- a/sound/soc/rockchip/rockchip_i2s.c
|
||||
+++ b/sound/soc/rockchip/rockchip_i2s.c
|
||||
@@ -1,4 +1,3 @@
|
||||
|
@ -283,7 +284,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
struct snd_soc_dai *dai)
|
||||
{
|
||||
struct rk_i2s_dev *i2s = to_info(dai);
|
||||
- struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||
- struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
|
||||
unsigned int val = 0;
|
||||
unsigned int mclk_rate, bclk_rate, div_bclk, div_lrck;
|
||||
|
||||
|
@ -314,7 +315,17 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -471,7 +500,6 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
|
||||
@@ -419,9 +448,6 @@ static int rockchip_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, int clk_id,
|
||||
struct rk_i2s_dev *i2s = to_info(cpu_dai);
|
||||
int ret;
|
||||
|
||||
- if (freq == 0)
|
||||
- return 0;
|
||||
-
|
||||
ret = clk_set_rate(i2s->mclk, freq);
|
||||
if (ret)
|
||||
dev_err(i2s->dev, "Fail to set mclk %d\n", ret);
|
||||
@@ -471,7 +497,6 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
|
||||
SNDRV_PCM_FMTBIT_S32_LE),
|
||||
},
|
||||
.ops = &rockchip_i2s_dai_ops,
|
||||
|
@ -322,7 +333,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
};
|
||||
|
||||
static const struct snd_soc_component_driver rockchip_i2s_component = {
|
||||
@@ -567,9 +595,16 @@ static const struct rk_i2s_pins rk3399_i2s_pins = {
|
||||
@@ -567,9 +592,16 @@ static const struct rk_i2s_pins rk3399_i2s_pins = {
|
||||
};
|
||||
|
||||
static const struct of_device_id rockchip_i2s_match[] = {
|
||||
|
@ -339,7 +350,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
{ .compatible = "rockchip,rk3399-i2s", .data = &rk3399_i2s_pins },
|
||||
{},
|
||||
};
|
||||
@@ -586,8 +621,10 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
@@ -586,8 +618,10 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
int val;
|
||||
|
||||
i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL);
|
||||
|
@ -351,7 +362,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
|
||||
i2s->dev = &pdev->dev;
|
||||
|
||||
@@ -600,6 +637,9 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
@@ -600,6 +634,9 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
i2s->pins = of_id->data;
|
||||
}
|
||||
|
||||
|
@ -361,7 +372,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
/* try to prepare related clocks */
|
||||
i2s->hclk = devm_clk_get(&pdev->dev, "i2s_hclk");
|
||||
if (IS_ERR(i2s->hclk)) {
|
||||
@@ -633,11 +673,11 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
@@ -633,11 +670,11 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
|
||||
i2s->playback_dma_data.addr = res->start + I2S_TXDR;
|
||||
i2s->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
|
||||
|
@ -375,7 +386,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
|
||||
dev_set_drvdata(&pdev->dev, i2s);
|
||||
|
||||
@@ -648,13 +688,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
@@ -648,13 +685,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
goto err_pm_disable;
|
||||
}
|
||||
|
||||
|
@ -393,7 +404,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
if (!of_property_read_u32(node, "rockchip,playback-channels", &val)) {
|
||||
if (val >= 2 && val <= 8)
|
||||
soc_dai->playback.channels_max = val;
|
||||
@@ -665,6 +704,24 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
@@ -665,6 +701,24 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
soc_dai->capture.channels_max = val;
|
||||
}
|
||||
|
||||
|
@ -418,7 +429,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
ret = devm_snd_soc_register_component(&pdev->dev,
|
||||
&rockchip_i2s_component,
|
||||
soc_dai, 1);
|
||||
@@ -674,10 +731,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
@@ -674,10 +728,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
|
||||
goto err_suspend;
|
||||
}
|
||||
|
||||
|
@ -433,7 +444,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
}
|
||||
|
||||
return 0;
|
||||
@@ -699,14 +758,41 @@ static int rockchip_i2s_remove(struct platform_device *pdev)
|
||||
@@ -699,14 +755,41 @@ static int rockchip_i2s_remove(struct platform_device *pdev)
|
||||
if (!pm_runtime_status_suspended(&pdev->dev))
|
||||
i2s_runtime_suspend(&pdev->dev);
|
||||
|
||||
|
@ -476,6 +487,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s
|
|||
|
||||
static struct platform_driver rockchip_i2s_driver = {
|
||||
diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c
|
||||
index 39c1b98f9593..499b991c3c1a 100644
|
||||
--- a/sound/soc/rockchip/rockchip_i2s_tdm.c
|
||||
+++ b/sound/soc/rockchip/rockchip_i2s_tdm.c
|
||||
@@ -15,9 +15,13 @@
|
||||
|
@ -1850,6 +1862,7 @@ diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip
|
|||
if (ret) {
|
||||
dev_err(&pdev->dev, "Could not register PCM\n");
|
||||
diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.h b/sound/soc/rockchip/rockchip_i2s_tdm.h
|
||||
index 1a28523cfd82..3a69fa276f8f 100644
|
||||
--- a/sound/soc/rockchip/rockchip_i2s_tdm.h
|
||||
+++ b/sound/soc/rockchip/rockchip_i2s_tdm.h
|
||||
@@ -18,6 +18,9 @@
|
||||
|
|
3339
patch/kernel/rockpis-legacy/patch-4.4.228-229.patch
Normal file
3339
patch/kernel/rockpis-legacy/patch-4.4.228-229.patch
Normal file
File diff suppressed because it is too large
Load diff
679
patch/kernel/rockpis-legacy/patch-4.4.229-230.patch
Normal file
679
patch/kernel/rockpis-legacy/patch-4.4.229-230.patch
Normal file
|
@ -0,0 +1,679 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index 99b211904ac5..847f2537d39d 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 229
|
||||
+SUBLEVEL = 230
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
|
||||
index 6abd6b41c13d..36472fc266fd 100644
|
||||
--- a/arch/mips/kernel/traps.c
|
||||
+++ b/arch/mips/kernel/traps.c
|
||||
@@ -2080,6 +2080,7 @@ static void configure_status(void)
|
||||
|
||||
change_c0_status(ST0_CU|ST0_MX|ST0_RE|ST0_FR|ST0_BEV|ST0_TS|ST0_KX|ST0_SX|ST0_UX,
|
||||
status_set);
|
||||
+ back_to_back_c0_hazard();
|
||||
}
|
||||
|
||||
/* configure HWRENA register */
|
||||
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
|
||||
index cf3975ee4fd8..c48ddeb6c328 100644
|
||||
--- a/crypto/af_alg.c
|
||||
+++ b/crypto/af_alg.c
|
||||
@@ -130,21 +130,15 @@ EXPORT_SYMBOL_GPL(af_alg_release);
|
||||
void af_alg_release_parent(struct sock *sk)
|
||||
{
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
- unsigned int nokey = ask->nokey_refcnt;
|
||||
- bool last = nokey && !ask->refcnt;
|
||||
+ unsigned int nokey = atomic_read(&ask->nokey_refcnt);
|
||||
|
||||
sk = ask->parent;
|
||||
ask = alg_sk(sk);
|
||||
|
||||
- local_bh_disable();
|
||||
- bh_lock_sock(sk);
|
||||
- ask->nokey_refcnt -= nokey;
|
||||
- if (!last)
|
||||
- last = !--ask->refcnt;
|
||||
- bh_unlock_sock(sk);
|
||||
- local_bh_enable();
|
||||
+ if (nokey)
|
||||
+ atomic_dec(&ask->nokey_refcnt);
|
||||
|
||||
- if (last)
|
||||
+ if (atomic_dec_and_test(&ask->refcnt))
|
||||
sock_put(sk);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(af_alg_release_parent);
|
||||
@@ -189,7 +183,7 @@ static int alg_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
|
||||
|
||||
err = -EBUSY;
|
||||
lock_sock(sk);
|
||||
- if (ask->refcnt | ask->nokey_refcnt)
|
||||
+ if (atomic_read(&ask->refcnt))
|
||||
goto unlock;
|
||||
|
||||
swap(ask->type, type);
|
||||
@@ -238,7 +232,7 @@ static int alg_setsockopt(struct socket *sock, int level, int optname,
|
||||
int err = -EBUSY;
|
||||
|
||||
lock_sock(sk);
|
||||
- if (ask->refcnt)
|
||||
+ if (atomic_read(&ask->refcnt) != atomic_read(&ask->nokey_refcnt))
|
||||
goto unlock;
|
||||
|
||||
type = ask->type;
|
||||
@@ -305,12 +299,14 @@ int af_alg_accept(struct sock *sk, struct socket *newsock)
|
||||
|
||||
sk2->sk_family = PF_ALG;
|
||||
|
||||
- if (nokey || !ask->refcnt++)
|
||||
+ if (atomic_inc_return_relaxed(&ask->refcnt) == 1)
|
||||
sock_hold(sk);
|
||||
- ask->nokey_refcnt += nokey;
|
||||
+ if (nokey) {
|
||||
+ atomic_inc(&ask->nokey_refcnt);
|
||||
+ atomic_set(&alg_sk(sk2)->nokey_refcnt, 1);
|
||||
+ }
|
||||
alg_sk(sk2)->parent = sk;
|
||||
alg_sk(sk2)->type = type;
|
||||
- alg_sk(sk2)->nokey_refcnt = nokey;
|
||||
|
||||
newsock->ops = type->ops;
|
||||
newsock->state = SS_CONNECTED;
|
||||
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c
|
||||
index faea9d728fd2..c50175ad5485 100644
|
||||
--- a/crypto/algif_aead.c
|
||||
+++ b/crypto/algif_aead.c
|
||||
@@ -528,7 +528,7 @@ static int aead_check_key(struct socket *sock)
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
|
||||
lock_sock(sk);
|
||||
- if (ask->refcnt)
|
||||
+ if (!atomic_read(&ask->nokey_refcnt))
|
||||
goto unlock_child;
|
||||
|
||||
psk = ask->parent;
|
||||
@@ -540,11 +540,8 @@ static int aead_check_key(struct socket *sock)
|
||||
if (!tfm->has_key)
|
||||
goto unlock;
|
||||
|
||||
- if (!pask->refcnt++)
|
||||
- sock_hold(psk);
|
||||
-
|
||||
- ask->refcnt = 1;
|
||||
- sock_put(psk);
|
||||
+ atomic_dec(&pask->nokey_refcnt);
|
||||
+ atomic_set(&ask->nokey_refcnt, 0);
|
||||
|
||||
err = 0;
|
||||
|
||||
diff --git a/crypto/algif_hash.c b/crypto/algif_hash.c
|
||||
index 8d8b3eeba725..fd23261f1d16 100644
|
||||
--- a/crypto/algif_hash.c
|
||||
+++ b/crypto/algif_hash.c
|
||||
@@ -252,7 +252,7 @@ static int hash_check_key(struct socket *sock)
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
|
||||
lock_sock(sk);
|
||||
- if (ask->refcnt)
|
||||
+ if (!atomic_read(&ask->nokey_refcnt))
|
||||
goto unlock_child;
|
||||
|
||||
psk = ask->parent;
|
||||
@@ -264,11 +264,8 @@ static int hash_check_key(struct socket *sock)
|
||||
if (!tfm->has_key)
|
||||
goto unlock;
|
||||
|
||||
- if (!pask->refcnt++)
|
||||
- sock_hold(psk);
|
||||
-
|
||||
- ask->refcnt = 1;
|
||||
- sock_put(psk);
|
||||
+ atomic_dec(&pask->nokey_refcnt);
|
||||
+ atomic_set(&ask->nokey_refcnt, 0);
|
||||
|
||||
err = 0;
|
||||
|
||||
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c
|
||||
index 9bd4691cc5c5..0e200bf5aa82 100644
|
||||
--- a/crypto/algif_skcipher.c
|
||||
+++ b/crypto/algif_skcipher.c
|
||||
@@ -774,7 +774,7 @@ static int skcipher_check_key(struct socket *sock)
|
||||
struct alg_sock *ask = alg_sk(sk);
|
||||
|
||||
lock_sock(sk);
|
||||
- if (ask->refcnt)
|
||||
+ if (!atomic_read(&ask->nokey_refcnt))
|
||||
goto unlock_child;
|
||||
|
||||
psk = ask->parent;
|
||||
@@ -786,11 +786,8 @@ static int skcipher_check_key(struct socket *sock)
|
||||
if (!tfm->has_key)
|
||||
goto unlock;
|
||||
|
||||
- if (!pask->refcnt++)
|
||||
- sock_hold(psk);
|
||||
-
|
||||
- ask->refcnt = 1;
|
||||
- sock_put(psk);
|
||||
+ atomic_dec(&pask->nokey_refcnt);
|
||||
+ atomic_set(&ask->nokey_refcnt, 0);
|
||||
|
||||
err = 0;
|
||||
|
||||
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
|
||||
index 1e5cd39d0cc2..bdc3efacd0d2 100644
|
||||
--- a/drivers/block/virtio_blk.c
|
||||
+++ b/drivers/block/virtio_blk.c
|
||||
@@ -757,6 +757,7 @@ out_put_disk:
|
||||
put_disk(vblk->disk);
|
||||
out_free_vq:
|
||||
vdev->config->del_vqs(vdev);
|
||||
+ kfree(vblk->vqs);
|
||||
out_free_vblk:
|
||||
kfree(vblk);
|
||||
out_free_index:
|
||||
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
|
||||
index 932ba7676183..5f86075e34da 100644
|
||||
--- a/drivers/edac/amd64_edac.c
|
||||
+++ b/drivers/edac/amd64_edac.c
|
||||
@@ -248,6 +248,8 @@ static int get_scrub_rate(struct mem_ctl_info *mci)
|
||||
|
||||
if (pvt->model == 0x60)
|
||||
amd64_read_pci_cfg(pvt->F2, F15H_M60H_SCRCTRL, &scrubval);
|
||||
+ else
|
||||
+ amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
|
||||
} else
|
||||
amd64_read_pci_cfg(pvt->F3, SCRCTRL, &scrubval);
|
||||
|
||||
diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
|
||||
index e27f7e12c05b..9b4ad6c74041 100644
|
||||
--- a/drivers/hwmon/acpi_power_meter.c
|
||||
+++ b/drivers/hwmon/acpi_power_meter.c
|
||||
@@ -895,7 +895,7 @@ static int acpi_power_meter_add(struct acpi_device *device)
|
||||
|
||||
res = setup_attrs(resource);
|
||||
if (res)
|
||||
- goto exit_free;
|
||||
+ goto exit_free_capability;
|
||||
|
||||
resource->hwmon_dev = hwmon_device_register(&device->dev);
|
||||
if (IS_ERR(resource->hwmon_dev)) {
|
||||
@@ -908,6 +908,8 @@ static int acpi_power_meter_add(struct acpi_device *device)
|
||||
|
||||
exit_remove:
|
||||
remove_attrs(resource);
|
||||
+exit_free_capability:
|
||||
+ free_capabilities(resource);
|
||||
exit_free:
|
||||
kfree(resource);
|
||||
exit:
|
||||
diff --git a/drivers/hwmon/max6697.c b/drivers/hwmon/max6697.c
|
||||
index f03a71722849..d4bb3d6aaf18 100644
|
||||
--- a/drivers/hwmon/max6697.c
|
||||
+++ b/drivers/hwmon/max6697.c
|
||||
@@ -46,8 +46,9 @@ static const u8 MAX6697_REG_CRIT[] = {
|
||||
* Map device tree / platform data register bit map to chip bit map.
|
||||
* Applies to alert register and over-temperature register.
|
||||
*/
|
||||
-#define MAX6697_MAP_BITS(reg) ((((reg) & 0x7e) >> 1) | \
|
||||
+#define MAX6697_ALERT_MAP_BITS(reg) ((((reg) & 0x7e) >> 1) | \
|
||||
(((reg) & 0x01) << 6) | ((reg) & 0x80))
|
||||
+#define MAX6697_OVERT_MAP_BITS(reg) (((reg) >> 1) | (((reg) & 0x01) << 7))
|
||||
|
||||
#define MAX6697_REG_STAT(n) (0x44 + (n))
|
||||
|
||||
@@ -586,12 +587,12 @@ static int max6697_init_chip(struct max6697_data *data,
|
||||
return ret;
|
||||
|
||||
ret = i2c_smbus_write_byte_data(client, MAX6697_REG_ALERT_MASK,
|
||||
- MAX6697_MAP_BITS(pdata->alert_mask));
|
||||
+ MAX6697_ALERT_MAP_BITS(pdata->alert_mask));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = i2c_smbus_write_byte_data(client, MAX6697_REG_OVERT_MASK,
|
||||
- MAX6697_MAP_BITS(pdata->over_temperature_mask));
|
||||
+ MAX6697_OVERT_MAP_BITS(pdata->over_temperature_mask));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
diff --git a/drivers/i2c/algos/i2c-algo-pca.c b/drivers/i2c/algos/i2c-algo-pca.c
|
||||
index e370804ec8bc..3a9db4626cb6 100644
|
||||
--- a/drivers/i2c/algos/i2c-algo-pca.c
|
||||
+++ b/drivers/i2c/algos/i2c-algo-pca.c
|
||||
@@ -326,7 +326,8 @@ static int pca_xfer(struct i2c_adapter *i2c_adap,
|
||||
DEB2("BUS ERROR - SDA Stuck low\n");
|
||||
pca_reset(adap);
|
||||
goto out;
|
||||
- case 0x90: /* Bus error - SCL stuck low */
|
||||
+ case 0x78: /* Bus error - SCL stuck low (PCA9665) */
|
||||
+ case 0x90: /* Bus error - SCL stuck low (PCA9564) */
|
||||
DEB2("BUS ERROR - SCL Stuck low\n");
|
||||
pca_reset(adap);
|
||||
goto out;
|
||||
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
|
||||
index bc92a498ec03..9f19aa950bb1 100644
|
||||
--- a/drivers/usb/misc/usbtest.c
|
||||
+++ b/drivers/usb/misc/usbtest.c
|
||||
@@ -2703,6 +2703,7 @@ static void usbtest_disconnect(struct usb_interface *intf)
|
||||
|
||||
usb_set_intfdata(intf, NULL);
|
||||
dev_dbg(&intf->dev, "disconnect\n");
|
||||
+ kfree(dev->buf);
|
||||
kfree(dev);
|
||||
}
|
||||
|
||||
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
|
||||
index 972475eeb2dd..b1125778b908 100644
|
||||
--- a/fs/btrfs/inode.c
|
||||
+++ b/fs/btrfs/inode.c
|
||||
@@ -926,7 +926,7 @@ static noinline int cow_file_range(struct inode *inode,
|
||||
u64 alloc_hint = 0;
|
||||
u64 num_bytes;
|
||||
unsigned long ram_size;
|
||||
- u64 disk_num_bytes;
|
||||
+ u64 min_alloc_size;
|
||||
u64 cur_alloc_size;
|
||||
u64 blocksize = root->sectorsize;
|
||||
struct btrfs_key ins;
|
||||
@@ -942,7 +942,6 @@ static noinline int cow_file_range(struct inode *inode,
|
||||
|
||||
num_bytes = ALIGN(end - start + 1, blocksize);
|
||||
num_bytes = max(blocksize, num_bytes);
|
||||
- disk_num_bytes = num_bytes;
|
||||
|
||||
/* if this is a small write inside eof, kick off defrag */
|
||||
if (num_bytes < 64 * 1024 &&
|
||||
@@ -969,18 +968,33 @@ static noinline int cow_file_range(struct inode *inode,
|
||||
}
|
||||
}
|
||||
|
||||
- BUG_ON(disk_num_bytes >
|
||||
- btrfs_super_total_bytes(root->fs_info->super_copy));
|
||||
+ BUG_ON(num_bytes > btrfs_super_total_bytes(root->fs_info->super_copy));
|
||||
|
||||
alloc_hint = get_extent_allocation_hint(inode, start, num_bytes);
|
||||
btrfs_drop_extent_cache(inode, start, start + num_bytes - 1, 0);
|
||||
|
||||
- while (disk_num_bytes > 0) {
|
||||
+ /*
|
||||
+ * Relocation relies on the relocated extents to have exactly the same
|
||||
+ * size as the original extents. Normally writeback for relocation data
|
||||
+ * extents follows a NOCOW path because relocation preallocates the
|
||||
+ * extents. However, due to an operation such as scrub turning a block
|
||||
+ * group to RO mode, it may fallback to COW mode, so we must make sure
|
||||
+ * an extent allocated during COW has exactly the requested size and can
|
||||
+ * not be split into smaller extents, otherwise relocation breaks and
|
||||
+ * fails during the stage where it updates the bytenr of file extent
|
||||
+ * items.
|
||||
+ */
|
||||
+ if (root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID)
|
||||
+ min_alloc_size = num_bytes;
|
||||
+ else
|
||||
+ min_alloc_size = root->sectorsize;
|
||||
+
|
||||
+ while (num_bytes > 0) {
|
||||
unsigned long op;
|
||||
|
||||
- cur_alloc_size = disk_num_bytes;
|
||||
+ cur_alloc_size = num_bytes;
|
||||
ret = btrfs_reserve_extent(root, cur_alloc_size,
|
||||
- root->sectorsize, 0, alloc_hint,
|
||||
+ min_alloc_size, 0, alloc_hint,
|
||||
&ins, 1, 1);
|
||||
if (ret < 0)
|
||||
goto out_unlock;
|
||||
@@ -1033,7 +1047,7 @@ static noinline int cow_file_range(struct inode *inode,
|
||||
goto out_drop_extent_cache;
|
||||
}
|
||||
|
||||
- if (disk_num_bytes < cur_alloc_size)
|
||||
+ if (num_bytes < cur_alloc_size)
|
||||
break;
|
||||
|
||||
/* we're not doing compressed IO, don't unlock the first
|
||||
@@ -1050,8 +1064,10 @@ static noinline int cow_file_range(struct inode *inode,
|
||||
start + ram_size - 1, locked_page,
|
||||
EXTENT_LOCKED | EXTENT_DELALLOC,
|
||||
op);
|
||||
- disk_num_bytes -= cur_alloc_size;
|
||||
- num_bytes -= cur_alloc_size;
|
||||
+ if (num_bytes < cur_alloc_size)
|
||||
+ num_bytes = 0;
|
||||
+ else
|
||||
+ num_bytes -= cur_alloc_size;
|
||||
alloc_hint = ins.objectid + ins.offset;
|
||||
start += cur_alloc_size;
|
||||
}
|
||||
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
|
||||
index 21ddfd77966e..f4ef8d6ea8ed 100644
|
||||
--- a/fs/cifs/connect.c
|
||||
+++ b/fs/cifs/connect.c
|
||||
@@ -4203,9 +4203,12 @@ cifs_construct_tcon(struct cifs_sb_info *cifs_sb, kuid_t fsuid)
|
||||
vol_info->retry = master_tcon->retry;
|
||||
vol_info->nocase = master_tcon->nocase;
|
||||
vol_info->local_lease = master_tcon->local_lease;
|
||||
+ vol_info->resilient = master_tcon->use_resilient;
|
||||
+ vol_info->persistent = master_tcon->use_persistent;
|
||||
vol_info->no_linux_ext = !master_tcon->unix_ext;
|
||||
vol_info->sectype = master_tcon->ses->sectype;
|
||||
vol_info->sign = master_tcon->ses->sign;
|
||||
+ vol_info->seal = master_tcon->seal;
|
||||
|
||||
rc = cifs_set_vol_auth(vol_info, master_tcon->ses);
|
||||
if (rc) {
|
||||
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
|
||||
index c18c26a78453..a002e289a544 100644
|
||||
--- a/fs/cifs/inode.c
|
||||
+++ b/fs/cifs/inode.c
|
||||
@@ -1737,6 +1737,7 @@ cifs_rename2(struct inode *source_dir, struct dentry *source_dentry,
|
||||
FILE_UNIX_BASIC_INFO *info_buf_target;
|
||||
unsigned int xid;
|
||||
int rc, tmprc;
|
||||
+ bool new_target = d_really_is_negative(target_dentry);
|
||||
|
||||
if (flags & ~RENAME_NOREPLACE)
|
||||
return -EINVAL;
|
||||
@@ -1813,8 +1814,13 @@ cifs_rename2(struct inode *source_dir, struct dentry *source_dentry,
|
||||
*/
|
||||
|
||||
unlink_target:
|
||||
- /* Try unlinking the target dentry if it's not negative */
|
||||
- if (d_really_is_positive(target_dentry) && (rc == -EACCES || rc == -EEXIST)) {
|
||||
+ /*
|
||||
+ * If the target dentry was created during the rename, try
|
||||
+ * unlinking it if it's not negative
|
||||
+ */
|
||||
+ if (new_target &&
|
||||
+ d_really_is_positive(target_dentry) &&
|
||||
+ (rc == -EACCES || rc == -EEXIST)) {
|
||||
if (d_is_dir(target_dentry))
|
||||
tmprc = cifs_rmdir(target_dir, target_dentry);
|
||||
else
|
||||
diff --git a/include/crypto/if_alg.h b/include/crypto/if_alg.h
|
||||
index a2bfd7843f18..4bb6b98782e9 100644
|
||||
--- a/include/crypto/if_alg.h
|
||||
+++ b/include/crypto/if_alg.h
|
||||
@@ -30,8 +30,8 @@ struct alg_sock {
|
||||
|
||||
struct sock *parent;
|
||||
|
||||
- unsigned int refcnt;
|
||||
- unsigned int nokey_refcnt;
|
||||
+ atomic_t refcnt;
|
||||
+ atomic_t nokey_refcnt;
|
||||
|
||||
const struct af_alg_type *type;
|
||||
void *private;
|
||||
diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
|
||||
index c9e4731cf10b..7fc36ebc5de3 100644
|
||||
--- a/include/linux/sched/sysctl.h
|
||||
+++ b/include/linux/sched/sysctl.h
|
||||
@@ -81,6 +81,7 @@ extern unsigned int sysctl_sched_cfs_bandwidth_slice;
|
||||
extern unsigned int sysctl_sched_autogroup_enabled;
|
||||
#endif
|
||||
|
||||
+extern int sysctl_sched_rr_timeslice;
|
||||
extern int sched_rr_timeslice;
|
||||
|
||||
extern int sched_rr_handler(struct ctl_table *table, int write,
|
||||
diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
|
||||
index 9c939c6bf21c..321ccdbb7364 100644
|
||||
--- a/kernel/debug/debug_core.c
|
||||
+++ b/kernel/debug/debug_core.c
|
||||
@@ -488,6 +488,7 @@ static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs,
|
||||
arch_kgdb_ops.disable_hw_break(regs);
|
||||
|
||||
acquirelock:
|
||||
+ rcu_read_lock();
|
||||
/*
|
||||
* Interrupts will be restored by the 'trap return' code, except when
|
||||
* single stepping.
|
||||
@@ -542,6 +543,7 @@ return_normal:
|
||||
atomic_dec(&slaves_in_kgdb);
|
||||
dbg_touch_watchdogs();
|
||||
local_irq_restore(flags);
|
||||
+ rcu_read_unlock();
|
||||
return 0;
|
||||
}
|
||||
cpu_relax();
|
||||
@@ -560,6 +562,7 @@ return_normal:
|
||||
raw_spin_unlock(&dbg_master_lock);
|
||||
dbg_touch_watchdogs();
|
||||
local_irq_restore(flags);
|
||||
+ rcu_read_unlock();
|
||||
|
||||
goto acquirelock;
|
||||
}
|
||||
@@ -677,6 +680,7 @@ kgdb_restore:
|
||||
raw_spin_unlock(&dbg_master_lock);
|
||||
dbg_touch_watchdogs();
|
||||
local_irq_restore(flags);
|
||||
+ rcu_read_unlock();
|
||||
|
||||
return kgdb_info[cpu].ret_state;
|
||||
}
|
||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
||||
index 14a87c1f3a3a..4a0a754f24c8 100644
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -8266,8 +8266,9 @@ int sched_rr_handler(struct ctl_table *table, int write,
|
||||
/* make sure that internally we keep jiffies */
|
||||
/* also, writing zero resets timeslice to default */
|
||||
if (!ret && write) {
|
||||
- sched_rr_timeslice = sched_rr_timeslice <= 0 ?
|
||||
- RR_TIMESLICE : msecs_to_jiffies(sched_rr_timeslice);
|
||||
+ sched_rr_timeslice =
|
||||
+ sysctl_sched_rr_timeslice <= 0 ? RR_TIMESLICE :
|
||||
+ msecs_to_jiffies(sysctl_sched_rr_timeslice);
|
||||
}
|
||||
mutex_unlock(&mutex);
|
||||
return ret;
|
||||
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
|
||||
index 801b4ec40702..5ee5740635f3 100644
|
||||
--- a/kernel/sched/rt.c
|
||||
+++ b/kernel/sched/rt.c
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <linux/irq_work.h>
|
||||
|
||||
int sched_rr_timeslice = RR_TIMESLICE;
|
||||
+int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE;
|
||||
|
||||
static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun);
|
||||
|
||||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
||||
index c2dddd335d06..ecbb1b764a82 100644
|
||||
--- a/kernel/sysctl.c
|
||||
+++ b/kernel/sysctl.c
|
||||
@@ -412,7 +412,7 @@ static struct ctl_table kern_table[] = {
|
||||
},
|
||||
{
|
||||
.procname = "sched_rr_timeslice_ms",
|
||||
- .data = &sched_rr_timeslice,
|
||||
+ .data = &sysctl_sched_rr_timeslice,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = sched_rr_handler,
|
||||
diff --git a/mm/slub.c b/mm/slub.c
|
||||
index bb5237c67cbc..a3870034bfcc 100644
|
||||
--- a/mm/slub.c
|
||||
+++ b/mm/slub.c
|
||||
@@ -5305,7 +5305,8 @@ static void memcg_propagate_slab_attrs(struct kmem_cache *s)
|
||||
*/
|
||||
if (buffer)
|
||||
buf = buffer;
|
||||
- else if (root_cache->max_attr_size < ARRAY_SIZE(mbuf))
|
||||
+ else if (root_cache->max_attr_size < ARRAY_SIZE(mbuf) &&
|
||||
+ !IS_ENABLED(CONFIG_SLUB_STATS))
|
||||
buf = mbuf;
|
||||
else {
|
||||
buffer = (char *) get_zeroed_page(GFP_KERNEL);
|
||||
diff --git a/mm/swap_state.c b/mm/swap_state.c
|
||||
index d504adb7fa5f..9e587464e634 100644
|
||||
--- a/mm/swap_state.c
|
||||
+++ b/mm/swap_state.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <linux/migrate.h>
|
||||
|
||||
#include <asm/pgtable.h>
|
||||
+#include "internal.h"
|
||||
|
||||
/*
|
||||
* swapper_space is a fiction, retained to simplify the path through
|
||||
@@ -319,7 +320,7 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
|
||||
/*
|
||||
* call radix_tree_preload() while we can wait.
|
||||
*/
|
||||
- err = radix_tree_maybe_preload(gfp_mask & GFP_KERNEL);
|
||||
+ err = radix_tree_maybe_preload(gfp_mask & GFP_RECLAIM_MASK);
|
||||
if (err)
|
||||
break;
|
||||
|
||||
diff --git a/net/netfilter/nf_conntrack_h323_main.c b/net/netfilter/nf_conntrack_h323_main.c
|
||||
index 9511af04dc81..15495b956855 100644
|
||||
--- a/net/netfilter/nf_conntrack_h323_main.c
|
||||
+++ b/net/netfilter/nf_conntrack_h323_main.c
|
||||
@@ -1225,6 +1225,7 @@ static struct nf_conntrack_helper nf_conntrack_helper_q931[] __read_mostly = {
|
||||
{
|
||||
.name = "Q.931",
|
||||
.me = THIS_MODULE,
|
||||
+ .data_len = sizeof(struct nf_ct_h323_master),
|
||||
.tuple.src.l3num = AF_INET6,
|
||||
.tuple.src.u.tcp.port = cpu_to_be16(Q931_PORT),
|
||||
.tuple.dst.protonum = IPPROTO_TCP,
|
||||
diff --git a/sound/usb/card.h b/sound/usb/card.h
|
||||
index 844c68863810..71778ca4b26a 100644
|
||||
--- a/sound/usb/card.h
|
||||
+++ b/sound/usb/card.h
|
||||
@@ -80,10 +80,6 @@ struct snd_usb_endpoint {
|
||||
dma_addr_t sync_dma; /* DMA address of syncbuf */
|
||||
|
||||
unsigned int pipe; /* the data i/o pipe */
|
||||
- unsigned int framesize[2]; /* small/large frame sizes in samples */
|
||||
- unsigned int sample_rem; /* remainder from division fs/fps */
|
||||
- unsigned int sample_accum; /* sample accumulator */
|
||||
- unsigned int fps; /* frames per second */
|
||||
unsigned int freqn; /* nominal sampling rate in fs/fps in Q16.16 format */
|
||||
unsigned int freqm; /* momentary sampling rate in fs/fps in Q16.16 format */
|
||||
int freqshift; /* how much to shift the feedback value to get Q16.16 */
|
||||
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
|
||||
index 666731317b33..66648b4bdd28 100644
|
||||
--- a/sound/usb/endpoint.c
|
||||
+++ b/sound/usb/endpoint.c
|
||||
@@ -137,12 +137,12 @@ int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep)
|
||||
|
||||
/*
|
||||
* For streaming based on information derived from sync endpoints,
|
||||
- * prepare_outbound_urb_sizes() will call slave_next_packet_size() to
|
||||
+ * prepare_outbound_urb_sizes() will call next_packet_size() to
|
||||
* determine the number of samples to be sent in the next packet.
|
||||
*
|
||||
- * For implicit feedback, slave_next_packet_size() is unused.
|
||||
+ * For implicit feedback, next_packet_size() is unused.
|
||||
*/
|
||||
-int snd_usb_endpoint_slave_next_packet_size(struct snd_usb_endpoint *ep)
|
||||
+int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep)
|
||||
{
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
@@ -159,29 +159,6 @@ int snd_usb_endpoint_slave_next_packet_size(struct snd_usb_endpoint *ep)
|
||||
return ret;
|
||||
}
|
||||
|
||||
-/*
|
||||
- * For adaptive and synchronous endpoints, prepare_outbound_urb_sizes()
|
||||
- * will call next_packet_size() to determine the number of samples to be
|
||||
- * sent in the next packet.
|
||||
- */
|
||||
-int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep)
|
||||
-{
|
||||
- int ret;
|
||||
-
|
||||
- if (ep->fill_max)
|
||||
- return ep->maxframesize;
|
||||
-
|
||||
- ep->sample_accum += ep->sample_rem;
|
||||
- if (ep->sample_accum >= ep->fps) {
|
||||
- ep->sample_accum -= ep->fps;
|
||||
- ret = ep->framesize[1];
|
||||
- } else {
|
||||
- ret = ep->framesize[0];
|
||||
- }
|
||||
-
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
static void retire_outbound_urb(struct snd_usb_endpoint *ep,
|
||||
struct snd_urb_ctx *urb_ctx)
|
||||
{
|
||||
@@ -226,8 +203,6 @@ static void prepare_silent_urb(struct snd_usb_endpoint *ep,
|
||||
|
||||
if (ctx->packet_size[i])
|
||||
counts = ctx->packet_size[i];
|
||||
- else if (ep->sync_master)
|
||||
- counts = snd_usb_endpoint_slave_next_packet_size(ep);
|
||||
else
|
||||
counts = snd_usb_endpoint_next_packet_size(ep);
|
||||
|
||||
@@ -904,17 +879,10 @@ int snd_usb_endpoint_set_params(struct snd_usb_endpoint *ep,
|
||||
ep->maxpacksize = fmt->maxpacksize;
|
||||
ep->fill_max = !!(fmt->attributes & UAC_EP_CS_ATTR_FILL_MAX);
|
||||
|
||||
- if (snd_usb_get_speed(ep->chip->dev) == USB_SPEED_FULL) {
|
||||
+ if (snd_usb_get_speed(ep->chip->dev) == USB_SPEED_FULL)
|
||||
ep->freqn = get_usb_full_speed_rate(rate);
|
||||
- ep->fps = 1000;
|
||||
- } else {
|
||||
+ else
|
||||
ep->freqn = get_usb_high_speed_rate(rate);
|
||||
- ep->fps = 8000;
|
||||
- }
|
||||
-
|
||||
- ep->sample_rem = rate % ep->fps;
|
||||
- ep->framesize[0] = rate / ep->fps;
|
||||
- ep->framesize[1] = (rate + (ep->fps - 1)) / ep->fps;
|
||||
|
||||
/* calculate the frequency in 16.16 format */
|
||||
ep->freqm = ep->freqn;
|
||||
@@ -973,7 +941,6 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep)
|
||||
ep->active_mask = 0;
|
||||
ep->unlink_mask = 0;
|
||||
ep->phase = 0;
|
||||
- ep->sample_accum = 0;
|
||||
|
||||
snd_usb_endpoint_start_quirk(ep);
|
||||
|
||||
diff --git a/sound/usb/endpoint.h b/sound/usb/endpoint.h
|
||||
index 4aad49cbeb5f..584f295d7c77 100644
|
||||
--- a/sound/usb/endpoint.h
|
||||
+++ b/sound/usb/endpoint.h
|
||||
@@ -27,7 +27,6 @@ void snd_usb_endpoint_release(struct snd_usb_endpoint *ep);
|
||||
void snd_usb_endpoint_free(struct snd_usb_endpoint *ep);
|
||||
|
||||
int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep);
|
||||
-int snd_usb_endpoint_slave_next_packet_size(struct snd_usb_endpoint *ep);
|
||||
int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep);
|
||||
|
||||
void snd_usb_handle_sync_urb(struct snd_usb_endpoint *ep,
|
||||
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
|
||||
index 53d91cae86f9..f84c55ecd0fb 100644
|
||||
--- a/sound/usb/pcm.c
|
||||
+++ b/sound/usb/pcm.c
|
||||
@@ -1473,8 +1473,6 @@ static void prepare_playback_urb(struct snd_usb_substream *subs,
|
||||
for (i = 0; i < ctx->packets; i++) {
|
||||
if (ctx->packet_size[i])
|
||||
counts = ctx->packet_size[i];
|
||||
- else if (ep->sync_master)
|
||||
- counts = snd_usb_endpoint_slave_next_packet_size(ep);
|
||||
else
|
||||
counts = snd_usb_endpoint_next_packet_size(ep);
|
||||
|
1715
patch/kernel/rockpis-legacy/patch-4.4.230-231.patch
Normal file
1715
patch/kernel/rockpis-legacy/patch-4.4.230-231.patch
Normal file
File diff suppressed because it is too large
Load diff
1690
patch/kernel/rockpis-legacy/patch-4.4.231-232.patch
Normal file
1690
patch/kernel/rockpis-legacy/patch-4.4.231-232.patch
Normal file
File diff suppressed because it is too large
Load diff
4015
patch/kernel/rockpis-legacy/patch-4.4.232-233-changed.patch
Normal file
4015
patch/kernel/rockpis-legacy/patch-4.4.232-233-changed.patch
Normal file
File diff suppressed because it is too large
Load diff
934
patch/kernel/rockpis-legacy/patch-4.4.233-234.patch
Normal file
934
patch/kernel/rockpis-legacy/patch-4.4.233-234.patch
Normal file
|
@ -0,0 +1,934 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index 8f363a3bcaf81..573b646a19936 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 233
|
||||
+SUBLEVEL = 234
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h
|
||||
index ff4049155c840..355aec0867f4d 100644
|
||||
--- a/arch/alpha/include/asm/io.h
|
||||
+++ b/arch/alpha/include/asm/io.h
|
||||
@@ -491,10 +491,10 @@ extern inline void writeq(u64 b, volatile void __iomem *addr)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#define ioread16be(p) be16_to_cpu(ioread16(p))
|
||||
-#define ioread32be(p) be32_to_cpu(ioread32(p))
|
||||
-#define iowrite16be(v,p) iowrite16(cpu_to_be16(v), (p))
|
||||
-#define iowrite32be(v,p) iowrite32(cpu_to_be32(v), (p))
|
||||
+#define ioread16be(p) swab16(ioread16(p))
|
||||
+#define ioread32be(p) swab32(ioread32(p))
|
||||
+#define iowrite16be(v,p) iowrite16(swab16(v), (p))
|
||||
+#define iowrite32be(v,p) iowrite32(swab32(v), (p))
|
||||
|
||||
#define inb_p inb
|
||||
#define inw_p inw
|
||||
diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
|
||||
index e0267532bd4e0..edd392fdc14bb 100644
|
||||
--- a/arch/arm/kvm/mmu.c
|
||||
+++ b/arch/arm/kvm/mmu.c
|
||||
@@ -300,14 +300,6 @@ static void unmap_range(struct kvm *kvm, pgd_t *pgdp,
|
||||
next = kvm_pgd_addr_end(addr, end);
|
||||
if (!pgd_none(*pgd))
|
||||
unmap_puds(kvm, pgd, addr, next);
|
||||
- /*
|
||||
- * If we are dealing with a large range in
|
||||
- * stage2 table, release the kvm->mmu_lock
|
||||
- * to prevent starvation and lockup detector
|
||||
- * warnings.
|
||||
- */
|
||||
- if (kvm && (next != end))
|
||||
- cond_resched_lock(&kvm->mmu_lock);
|
||||
} while (pgd++, addr = next, addr != end);
|
||||
}
|
||||
|
||||
diff --git a/arch/m68k/include/asm/m53xxacr.h b/arch/m68k/include/asm/m53xxacr.h
|
||||
index 3177ce8331d69..baee0c77b9818 100644
|
||||
--- a/arch/m68k/include/asm/m53xxacr.h
|
||||
+++ b/arch/m68k/include/asm/m53xxacr.h
|
||||
@@ -88,9 +88,9 @@
|
||||
* coherency though in all cases. And for copyback caches we will need
|
||||
* to push cached data as well.
|
||||
*/
|
||||
-#define CACHE_INIT CACR_CINVA
|
||||
-#define CACHE_INVALIDATE CACR_CINVA
|
||||
-#define CACHE_INVALIDATED CACR_CINVA
|
||||
+#define CACHE_INIT (CACHE_MODE + CACR_CINVA - CACR_EC)
|
||||
+#define CACHE_INVALIDATE (CACHE_MODE + CACR_CINVA)
|
||||
+#define CACHE_INVALIDATED (CACHE_MODE + CACR_CINVA)
|
||||
|
||||
#define ACR0_MODE ((CONFIG_RAMBASE & 0xff000000) + \
|
||||
(0x000f0000) + \
|
||||
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
|
||||
index d1f860ca03ade..101c202c813c8 100644
|
||||
--- a/arch/powerpc/mm/fault.c
|
||||
+++ b/arch/powerpc/mm/fault.c
|
||||
@@ -192,6 +192,9 @@ static int mm_fault_error(struct pt_regs *regs, unsigned long addr, int fault)
|
||||
return MM_FAULT_CONTINUE;
|
||||
}
|
||||
|
||||
+// This comes from 64-bit struct rt_sigframe + __SIGNAL_FRAMESIZE
|
||||
+#define SIGFRAME_MAX_SIZE (4096 + 128)
|
||||
+
|
||||
/*
|
||||
* For 600- and 800-family processors, the error_code parameter is DSISR
|
||||
* for a data fault, SRR1 for an instruction fault. For 400-family processors
|
||||
@@ -341,7 +344,7 @@ retry:
|
||||
/*
|
||||
* N.B. The POWER/Open ABI allows programs to access up to
|
||||
* 288 bytes below the stack pointer.
|
||||
- * The kernel signal delivery code writes up to about 1.5kB
|
||||
+ * The kernel signal delivery code writes up to about 4kB
|
||||
* below the stack pointer (r1) before decrementing it.
|
||||
* The exec code can write slightly over 640kB to the stack
|
||||
* before setting the user r1. Thus we allow the stack to
|
||||
@@ -365,7 +368,7 @@ retry:
|
||||
* between the last mapped region and the stack will
|
||||
* expand the stack rather than segfaulting.
|
||||
*/
|
||||
- if (address + 2048 < uregs->gpr[1] && !store_update_sp)
|
||||
+ if (address + SIGFRAME_MAX_SIZE < uregs->gpr[1] && !store_update_sp)
|
||||
goto bad_area;
|
||||
}
|
||||
if (expand_stack(vma, address))
|
||||
diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c
|
||||
index 31ca56e593f58..b9dc2ef64ed88 100644
|
||||
--- a/drivers/gpu/drm/imx/imx-ldb.c
|
||||
+++ b/drivers/gpu/drm/imx/imx-ldb.c
|
||||
@@ -305,6 +305,7 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
|
||||
{
|
||||
struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
|
||||
struct imx_ldb *ldb = imx_ldb_ch->ldb;
|
||||
+ int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
|
||||
int mux, ret;
|
||||
|
||||
/*
|
||||
@@ -321,14 +322,14 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
|
||||
|
||||
drm_panel_disable(imx_ldb_ch->panel);
|
||||
|
||||
- if (imx_ldb_ch == &ldb->channel[0])
|
||||
+ if (imx_ldb_ch == &ldb->channel[0] || dual)
|
||||
ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
|
||||
- else if (imx_ldb_ch == &ldb->channel[1])
|
||||
+ if (imx_ldb_ch == &ldb->channel[1] || dual)
|
||||
ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
|
||||
|
||||
regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
|
||||
|
||||
- if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
|
||||
+ if (dual) {
|
||||
clk_disable_unprepare(ldb->clk[0]);
|
||||
clk_disable_unprepare(ldb->clk[1]);
|
||||
}
|
||||
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
|
||||
index ad18dab0ac476..5bd9633541b07 100644
|
||||
--- a/drivers/input/mouse/psmouse-base.c
|
||||
+++ b/drivers/input/mouse/psmouse-base.c
|
||||
@@ -1911,7 +1911,7 @@ static int psmouse_get_maxproto(char *buffer, const struct kernel_param *kp)
|
||||
{
|
||||
int type = *((unsigned int *)kp->arg);
|
||||
|
||||
- return sprintf(buffer, "%s", psmouse_protocol_by_type(type)->name);
|
||||
+ return sprintf(buffer, "%s\n", psmouse_protocol_by_type(type)->name);
|
||||
}
|
||||
|
||||
static int __init psmouse_init(void)
|
||||
diff --git a/drivers/media/pci/ttpci/budget-core.c b/drivers/media/pci/ttpci/budget-core.c
|
||||
index e9674b40007c1..6107c469efa07 100644
|
||||
--- a/drivers/media/pci/ttpci/budget-core.c
|
||||
+++ b/drivers/media/pci/ttpci/budget-core.c
|
||||
@@ -386,20 +386,25 @@ static int budget_register(struct budget *budget)
|
||||
ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->hw_frontend);
|
||||
|
||||
if (ret < 0)
|
||||
- return ret;
|
||||
+ goto err_release_dmx;
|
||||
|
||||
budget->mem_frontend.source = DMX_MEMORY_FE;
|
||||
ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->mem_frontend);
|
||||
if (ret < 0)
|
||||
- return ret;
|
||||
+ goto err_release_dmx;
|
||||
|
||||
ret = dvbdemux->dmx.connect_frontend(&dvbdemux->dmx, &budget->hw_frontend);
|
||||
if (ret < 0)
|
||||
- return ret;
|
||||
+ goto err_release_dmx;
|
||||
|
||||
dvb_net_init(&budget->dvb_adapter, &budget->dvb_net, &dvbdemux->dmx);
|
||||
|
||||
return 0;
|
||||
+
|
||||
+err_release_dmx:
|
||||
+ dvb_dmxdev_release(&budget->dmxdev);
|
||||
+ dvb_dmx_release(&budget->demux);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static void budget_unregister(struct budget *budget)
|
||||
diff --git a/drivers/media/platform/davinci/vpss.c b/drivers/media/platform/davinci/vpss.c
|
||||
index c2c68988e38ac..9884b34d6f406 100644
|
||||
--- a/drivers/media/platform/davinci/vpss.c
|
||||
+++ b/drivers/media/platform/davinci/vpss.c
|
||||
@@ -519,19 +519,31 @@ static void vpss_exit(void)
|
||||
|
||||
static int __init vpss_init(void)
|
||||
{
|
||||
+ int ret;
|
||||
+
|
||||
if (!request_mem_region(VPSS_CLK_CTRL, 4, "vpss_clock_control"))
|
||||
return -EBUSY;
|
||||
|
||||
oper_cfg.vpss_regs_base2 = ioremap(VPSS_CLK_CTRL, 4);
|
||||
if (unlikely(!oper_cfg.vpss_regs_base2)) {
|
||||
- release_mem_region(VPSS_CLK_CTRL, 4);
|
||||
- return -ENOMEM;
|
||||
+ ret = -ENOMEM;
|
||||
+ goto err_ioremap;
|
||||
}
|
||||
|
||||
writel(VPSS_CLK_CTRL_VENCCLKEN |
|
||||
- VPSS_CLK_CTRL_DACCLKEN, oper_cfg.vpss_regs_base2);
|
||||
+ VPSS_CLK_CTRL_DACCLKEN, oper_cfg.vpss_regs_base2);
|
||||
+
|
||||
+ ret = platform_driver_register(&vpss_driver);
|
||||
+ if (ret)
|
||||
+ goto err_pd_register;
|
||||
+
|
||||
+ return 0;
|
||||
|
||||
- return platform_driver_register(&vpss_driver);
|
||||
+err_pd_register:
|
||||
+ iounmap(oper_cfg.vpss_regs_base2);
|
||||
+err_ioremap:
|
||||
+ release_mem_region(VPSS_CLK_CTRL, 4);
|
||||
+ return ret;
|
||||
}
|
||||
subsys_initcall(vpss_init);
|
||||
module_exit(vpss_exit);
|
||||
diff --git a/drivers/scsi/libfc/fc_disc.c b/drivers/scsi/libfc/fc_disc.c
|
||||
index 880a9068ca126..ef06af4e3611d 100644
|
||||
--- a/drivers/scsi/libfc/fc_disc.c
|
||||
+++ b/drivers/scsi/libfc/fc_disc.c
|
||||
@@ -595,8 +595,12 @@ static void fc_disc_gpn_id_resp(struct fc_seq *sp, struct fc_frame *fp,
|
||||
mutex_lock(&disc->disc_mutex);
|
||||
if (PTR_ERR(fp) == -FC_EX_CLOSED)
|
||||
goto out;
|
||||
- if (IS_ERR(fp))
|
||||
- goto redisc;
|
||||
+ if (IS_ERR(fp)) {
|
||||
+ mutex_lock(&disc->disc_mutex);
|
||||
+ fc_disc_restart(disc);
|
||||
+ mutex_unlock(&disc->disc_mutex);
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
cp = fc_frame_payload_get(fp, sizeof(*cp));
|
||||
if (!cp)
|
||||
@@ -621,7 +625,7 @@ static void fc_disc_gpn_id_resp(struct fc_seq *sp, struct fc_frame *fp,
|
||||
new_rdata->disc_id = disc->disc_id;
|
||||
lport->tt.rport_login(new_rdata);
|
||||
}
|
||||
- goto out;
|
||||
+ goto free_fp;
|
||||
}
|
||||
rdata->disc_id = disc->disc_id;
|
||||
lport->tt.rport_login(rdata);
|
||||
@@ -635,6 +639,8 @@ static void fc_disc_gpn_id_resp(struct fc_seq *sp, struct fc_frame *fp,
|
||||
redisc:
|
||||
fc_disc_restart(disc);
|
||||
}
|
||||
+free_fp:
|
||||
+ fc_frame_free(fp);
|
||||
out:
|
||||
mutex_unlock(&disc->disc_mutex);
|
||||
kref_put(&rdata->kref, lport->tt.rport_destroy);
|
||||
diff --git a/drivers/video/fbdev/omap2/dss/dss.c b/drivers/video/fbdev/omap2/dss/dss.c
|
||||
index 9200a8668b498..a57c3a5f4bf8b 100644
|
||||
--- a/drivers/video/fbdev/omap2/dss/dss.c
|
||||
+++ b/drivers/video/fbdev/omap2/dss/dss.c
|
||||
@@ -843,7 +843,7 @@ static const struct dss_features omap34xx_dss_feats = {
|
||||
};
|
||||
|
||||
static const struct dss_features omap3630_dss_feats = {
|
||||
- .fck_div_max = 32,
|
||||
+ .fck_div_max = 31,
|
||||
.dss_fck_multiplier = 1,
|
||||
.parent_clk_name = "dpll4_ck",
|
||||
.dpi_select_source = &dss_dpi_select_source_omap2_omap3,
|
||||
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
|
||||
index a01a41a412693..6b3565feddb21 100644
|
||||
--- a/drivers/virtio/virtio_ring.c
|
||||
+++ b/drivers/virtio/virtio_ring.c
|
||||
@@ -603,6 +603,9 @@ bool virtqueue_poll(struct virtqueue *_vq, unsigned last_used_idx)
|
||||
{
|
||||
struct vring_virtqueue *vq = to_vvq(_vq);
|
||||
|
||||
+ if (unlikely(vq->broken))
|
||||
+ return false;
|
||||
+
|
||||
virtio_mb(vq->weak_barriers);
|
||||
return (u16)last_used_idx != virtio16_to_cpu(_vq->vdev, vq->vring.used->idx);
|
||||
}
|
||||
diff --git a/drivers/watchdog/f71808e_wdt.c b/drivers/watchdog/f71808e_wdt.c
|
||||
index 2048aad91add8..2b12ef019ae02 100644
|
||||
--- a/drivers/watchdog/f71808e_wdt.c
|
||||
+++ b/drivers/watchdog/f71808e_wdt.c
|
||||
@@ -642,9 +642,9 @@ static int __init watchdog_init(int sioaddr)
|
||||
* into the module have been registered yet.
|
||||
*/
|
||||
watchdog.sioaddr = sioaddr;
|
||||
- watchdog.ident.options = WDIOC_SETTIMEOUT
|
||||
- | WDIOF_MAGICCLOSE
|
||||
- | WDIOF_KEEPALIVEPING;
|
||||
+ watchdog.ident.options = WDIOF_MAGICCLOSE
|
||||
+ | WDIOF_KEEPALIVEPING
|
||||
+ | WDIOF_CARDRESET;
|
||||
|
||||
snprintf(watchdog.ident.identity,
|
||||
sizeof(watchdog.ident.identity), "%s watchdog",
|
||||
diff --git a/drivers/xen/preempt.c b/drivers/xen/preempt.c
|
||||
index 5f6b77ea34fb5..128375ff80b8c 100644
|
||||
--- a/drivers/xen/preempt.c
|
||||
+++ b/drivers/xen/preempt.c
|
||||
@@ -31,7 +31,7 @@ EXPORT_SYMBOL_GPL(xen_in_preemptible_hcall);
|
||||
asmlinkage __visible void xen_maybe_preempt_hcall(void)
|
||||
{
|
||||
if (unlikely(__this_cpu_read(xen_in_preemptible_hcall)
|
||||
- && need_resched())) {
|
||||
+ && need_resched() && !preempt_count())) {
|
||||
/*
|
||||
* Clear flag as we may be rescheduled on a different
|
||||
* cpu.
|
||||
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
|
||||
index 0b06d4942da77..8fb9a1e0048be 100644
|
||||
--- a/fs/btrfs/ctree.h
|
||||
+++ b/fs/btrfs/ctree.h
|
||||
@@ -4096,6 +4096,8 @@ ssize_t btrfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
|
||||
/* super.c */
|
||||
int btrfs_parse_options(struct btrfs_root *root, char *options);
|
||||
int btrfs_sync_fs(struct super_block *sb, int wait);
|
||||
+char *btrfs_get_subvol_name_from_objectid(struct btrfs_fs_info *fs_info,
|
||||
+ u64 subvol_objectid);
|
||||
|
||||
#ifdef CONFIG_PRINTK
|
||||
__printf(2, 3)
|
||||
diff --git a/fs/btrfs/export.c b/fs/btrfs/export.c
|
||||
index 2513a7f533342..92f80ed642194 100644
|
||||
--- a/fs/btrfs/export.c
|
||||
+++ b/fs/btrfs/export.c
|
||||
@@ -55,9 +55,9 @@ static int btrfs_encode_fh(struct inode *inode, u32 *fh, int *max_len,
|
||||
return type;
|
||||
}
|
||||
|
||||
-static struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,
|
||||
- u64 root_objectid, u32 generation,
|
||||
- int check_generation)
|
||||
+struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,
|
||||
+ u64 root_objectid, u32 generation,
|
||||
+ int check_generation)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = btrfs_sb(sb);
|
||||
struct btrfs_root *root;
|
||||
@@ -150,7 +150,7 @@ static struct dentry *btrfs_fh_to_dentry(struct super_block *sb, struct fid *fh,
|
||||
return btrfs_get_dentry(sb, objectid, root_objectid, generation, 1);
|
||||
}
|
||||
|
||||
-static struct dentry *btrfs_get_parent(struct dentry *child)
|
||||
+struct dentry *btrfs_get_parent(struct dentry *child)
|
||||
{
|
||||
struct inode *dir = d_inode(child);
|
||||
struct btrfs_root *root = BTRFS_I(dir)->root;
|
||||
diff --git a/fs/btrfs/export.h b/fs/btrfs/export.h
|
||||
index 074348a95841f..7a305e5549991 100644
|
||||
--- a/fs/btrfs/export.h
|
||||
+++ b/fs/btrfs/export.h
|
||||
@@ -16,4 +16,9 @@ struct btrfs_fid {
|
||||
u64 parent_root_objectid;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
+struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid,
|
||||
+ u64 root_objectid, u32 generation,
|
||||
+ int check_generation);
|
||||
+struct dentry *btrfs_get_parent(struct dentry *child);
|
||||
+
|
||||
#endif
|
||||
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
|
||||
index 404051bf5cba9..77e6ce0e1e351 100644
|
||||
--- a/fs/btrfs/super.c
|
||||
+++ b/fs/btrfs/super.c
|
||||
@@ -843,8 +843,8 @@ out:
|
||||
return error;
|
||||
}
|
||||
|
||||
-static char *get_subvol_name_from_objectid(struct btrfs_fs_info *fs_info,
|
||||
- u64 subvol_objectid)
|
||||
+char *btrfs_get_subvol_name_from_objectid(struct btrfs_fs_info *fs_info,
|
||||
+ u64 subvol_objectid)
|
||||
{
|
||||
struct btrfs_root *root = fs_info->tree_root;
|
||||
struct btrfs_root *fs_root;
|
||||
@@ -1120,6 +1120,7 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
|
||||
struct btrfs_fs_info *info = btrfs_sb(dentry->d_sb);
|
||||
struct btrfs_root *root = info->tree_root;
|
||||
char *compress_type;
|
||||
+ const char *subvol_name;
|
||||
|
||||
if (btrfs_test_opt(root, DEGRADED))
|
||||
seq_puts(seq, ",degraded");
|
||||
@@ -1204,8 +1205,13 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
|
||||
#endif
|
||||
seq_printf(seq, ",subvolid=%llu",
|
||||
BTRFS_I(d_inode(dentry))->root->root_key.objectid);
|
||||
- seq_puts(seq, ",subvol=");
|
||||
- seq_dentry(seq, dentry, " \t\n\\");
|
||||
+ subvol_name = btrfs_get_subvol_name_from_objectid(info,
|
||||
+ BTRFS_I(d_inode(dentry))->root->root_key.objectid);
|
||||
+ if (!IS_ERR(subvol_name)) {
|
||||
+ seq_puts(seq, ",subvol=");
|
||||
+ seq_escape(seq, subvol_name, " \t\n\\");
|
||||
+ kfree(subvol_name);
|
||||
+ }
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1323,8 +1329,8 @@ static struct dentry *mount_subvol(const char *subvol_name, u64 subvol_objectid,
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
- subvol_name = get_subvol_name_from_objectid(btrfs_sb(mnt->mnt_sb),
|
||||
- subvol_objectid);
|
||||
+ subvol_name = btrfs_get_subvol_name_from_objectid(
|
||||
+ btrfs_sb(mnt->mnt_sb), subvol_objectid);
|
||||
if (IS_ERR(subvol_name)) {
|
||||
root = ERR_CAST(subvol_name);
|
||||
subvol_name = NULL;
|
||||
diff --git a/fs/eventpoll.c b/fs/eventpoll.c
|
||||
index 240d9ceb8d0c6..b8959d0d4c723 100644
|
||||
--- a/fs/eventpoll.c
|
||||
+++ b/fs/eventpoll.c
|
||||
@@ -1719,9 +1719,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))
|
||||
+ if (list_empty(&epi->ffd.file->f_tfile_llink)) {
|
||||
+ get_file(epi->ffd.file);
|
||||
list_add(&epi->ffd.file->f_tfile_llink,
|
||||
&tfile_check_list);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
mutex_unlock(&ep->mtx);
|
||||
@@ -1765,6 +1767,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);
|
||||
}
|
||||
@@ -1902,13 +1905,13 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
|
||||
mutex_lock(&epmutex);
|
||||
if (is_file_epoll(tf.file)) {
|
||||
error = -ELOOP;
|
||||
- if (ep_loop_check(ep, tf.file) != 0) {
|
||||
- clear_tfile_check_list();
|
||||
+ if (ep_loop_check(ep, tf.file) != 0)
|
||||
goto error_tgt_fput;
|
||||
- }
|
||||
- } else
|
||||
+ } else {
|
||||
+ get_file(tf.file);
|
||||
list_add(&tf.file->f_tfile_llink,
|
||||
&tfile_check_list);
|
||||
+ }
|
||||
mutex_lock_nested(&ep->mtx, 0);
|
||||
if (is_file_epoll(tf.file)) {
|
||||
tep = tf.file->private_data;
|
||||
@@ -1932,8 +1935,6 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
|
||||
error = ep_insert(ep, &epds, tf.file, fd, full_check);
|
||||
} else
|
||||
error = -EEXIST;
|
||||
- if (full_check)
|
||||
- clear_tfile_check_list();
|
||||
break;
|
||||
case EPOLL_CTL_DEL:
|
||||
if (epi)
|
||||
@@ -1954,8 +1955,10 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
|
||||
mutex_unlock(&ep->mtx);
|
||||
|
||||
error_tgt_fput:
|
||||
- if (full_check)
|
||||
+ if (full_check) {
|
||||
+ clear_tfile_check_list();
|
||||
mutex_unlock(&epmutex);
|
||||
+ }
|
||||
|
||||
fdput(tf);
|
||||
error_fput:
|
||||
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
|
||||
index 566a8b08ccdd6..061b026e464c5 100644
|
||||
--- a/fs/ext4/namei.c
|
||||
+++ b/fs/ext4/namei.c
|
||||
@@ -1226,19 +1226,18 @@ static void dx_insert_block(struct dx_frame *frame, u32 hash, ext4_lblk_t block)
|
||||
}
|
||||
|
||||
/*
|
||||
- * NOTE! unlike strncmp, ext4_match returns 1 for success, 0 for failure.
|
||||
+ * Test whether a directory entry matches the filename being searched for.
|
||||
*
|
||||
- * `len <= EXT4_NAME_LEN' is guaranteed by caller.
|
||||
- * `de != NULL' is guaranteed by caller.
|
||||
+ * Return: %true if the directory entry matches, otherwise %false.
|
||||
*/
|
||||
-static inline int ext4_match(struct ext4_filename *fname,
|
||||
- struct ext4_dir_entry_2 *de)
|
||||
+static inline bool ext4_match(const struct ext4_filename *fname,
|
||||
+ const struct ext4_dir_entry_2 *de)
|
||||
{
|
||||
const void *name = fname_name(fname);
|
||||
u32 len = fname_len(fname);
|
||||
|
||||
if (!de->inode)
|
||||
- return 0;
|
||||
+ return false;
|
||||
|
||||
#ifdef CONFIG_EXT4_FS_ENCRYPTION
|
||||
if (unlikely(!name)) {
|
||||
@@ -1270,48 +1269,31 @@ int ext4_search_dir(struct buffer_head *bh, char *search_buf, int buf_size,
|
||||
struct ext4_dir_entry_2 * de;
|
||||
char * dlimit;
|
||||
int de_len;
|
||||
- int res;
|
||||
|
||||
de = (struct ext4_dir_entry_2 *)search_buf;
|
||||
dlimit = search_buf + buf_size;
|
||||
while ((char *) de < dlimit) {
|
||||
/* this code is executed quadratically often */
|
||||
/* do minimal checking `by hand' */
|
||||
- if ((char *) de + de->name_len <= dlimit) {
|
||||
- res = ext4_match(fname, de);
|
||||
- if (res < 0) {
|
||||
- res = -1;
|
||||
- goto return_result;
|
||||
- }
|
||||
- if (res > 0) {
|
||||
- /* found a match - just to be sure, do
|
||||
- * a full check */
|
||||
- if (ext4_check_dir_entry(dir, NULL, de, bh,
|
||||
- bh->b_data,
|
||||
- bh->b_size, offset)) {
|
||||
- res = -1;
|
||||
- goto return_result;
|
||||
- }
|
||||
- *res_dir = de;
|
||||
- res = 1;
|
||||
- goto return_result;
|
||||
- }
|
||||
-
|
||||
+ if ((char *) de + de->name_len <= dlimit &&
|
||||
+ ext4_match(fname, de)) {
|
||||
+ /* found a match - just to be sure, do
|
||||
+ * a full check */
|
||||
+ if (ext4_check_dir_entry(dir, NULL, de, bh, search_buf,
|
||||
+ buf_size, offset))
|
||||
+ return -1;
|
||||
+ *res_dir = de;
|
||||
+ return 1;
|
||||
}
|
||||
/* prevent looping on a bad block */
|
||||
de_len = ext4_rec_len_from_disk(de->rec_len,
|
||||
dir->i_sb->s_blocksize);
|
||||
- if (de_len <= 0) {
|
||||
- res = -1;
|
||||
- goto return_result;
|
||||
- }
|
||||
+ if (de_len <= 0)
|
||||
+ return -1;
|
||||
offset += de_len;
|
||||
de = (struct ext4_dir_entry_2 *) ((char *) de + de_len);
|
||||
}
|
||||
-
|
||||
- res = 0;
|
||||
-return_result:
|
||||
- return res;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int is_dx_internal_node(struct inode *dir, ext4_lblk_t block,
|
||||
@@ -1748,7 +1730,7 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
|
||||
blocksize, hinfo, map);
|
||||
map -= count;
|
||||
dx_sort_map(map, count);
|
||||
- /* Split the existing block in the middle, size-wise */
|
||||
+ /* Ensure that neither split block is over half full */
|
||||
size = 0;
|
||||
move = 0;
|
||||
for (i = count-1; i >= 0; i--) {
|
||||
@@ -1758,8 +1740,18 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
|
||||
size += map[i].size;
|
||||
move++;
|
||||
}
|
||||
- /* map index at which we will split */
|
||||
- split = count - move;
|
||||
+ /*
|
||||
+ * map index at which we will split
|
||||
+ *
|
||||
+ * If the sum of active entries didn't exceed half the block size, just
|
||||
+ * split it in half by count; each resulting block will have at least
|
||||
+ * half the space free.
|
||||
+ */
|
||||
+ if (i > 0)
|
||||
+ split = count - move;
|
||||
+ else
|
||||
+ split = count/2;
|
||||
+
|
||||
hash2 = map[split].hash;
|
||||
continued = hash2 == map[split - 1].hash;
|
||||
dxtrace(printk(KERN_INFO "Split block %lu at %x, %i/%i\n",
|
||||
@@ -1824,24 +1816,15 @@ int ext4_find_dest_de(struct inode *dir, struct inode *inode,
|
||||
int nlen, rlen;
|
||||
unsigned int offset = 0;
|
||||
char *top;
|
||||
- int res;
|
||||
|
||||
de = (struct ext4_dir_entry_2 *)buf;
|
||||
top = buf + buf_size - reclen;
|
||||
while ((char *) de <= top) {
|
||||
if (ext4_check_dir_entry(dir, NULL, de, bh,
|
||||
- buf, buf_size, offset)) {
|
||||
- res = -EFSCORRUPTED;
|
||||
- goto return_result;
|
||||
- }
|
||||
- /* Provide crypto context and crypto buffer to ext4 match */
|
||||
- res = ext4_match(fname, de);
|
||||
- if (res < 0)
|
||||
- goto return_result;
|
||||
- if (res > 0) {
|
||||
- res = -EEXIST;
|
||||
- goto return_result;
|
||||
- }
|
||||
+ buf, buf_size, offset))
|
||||
+ return -EFSCORRUPTED;
|
||||
+ if (ext4_match(fname, de))
|
||||
+ return -EEXIST;
|
||||
nlen = EXT4_DIR_REC_LEN(de->name_len);
|
||||
rlen = ext4_rec_len_from_disk(de->rec_len, buf_size);
|
||||
if ((de->inode ? rlen - nlen : rlen) >= reclen)
|
||||
@@ -1849,15 +1832,11 @@ int ext4_find_dest_de(struct inode *dir, struct inode *inode,
|
||||
de = (struct ext4_dir_entry_2 *)((char *)de + rlen);
|
||||
offset += rlen;
|
||||
}
|
||||
-
|
||||
if ((char *) de > top)
|
||||
- res = -ENOSPC;
|
||||
- else {
|
||||
- *dest_de = de;
|
||||
- res = 0;
|
||||
- }
|
||||
-return_result:
|
||||
- return res;
|
||||
+ return -ENOSPC;
|
||||
+
|
||||
+ *dest_de = de;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int ext4_insert_dentry(struct inode *dir,
|
||||
@@ -2343,7 +2322,7 @@ int ext4_generic_delete_entry(handle_t *handle,
|
||||
de = (struct ext4_dir_entry_2 *)entry_buf;
|
||||
while (i < buf_size - csum_size) {
|
||||
if (ext4_check_dir_entry(dir, NULL, de, bh,
|
||||
- bh->b_data, bh->b_size, i))
|
||||
+ entry_buf, buf_size, i))
|
||||
return -EFSCORRUPTED;
|
||||
if (de == de_del) {
|
||||
if (pde)
|
||||
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c
|
||||
index e273171696972..7a3368929245d 100644
|
||||
--- a/fs/jffs2/dir.c
|
||||
+++ b/fs/jffs2/dir.c
|
||||
@@ -588,10 +588,14 @@ static int jffs2_rmdir (struct inode *dir_i, struct dentry *dentry)
|
||||
int ret;
|
||||
uint32_t now = get_seconds();
|
||||
|
||||
+ mutex_lock(&f->sem);
|
||||
for (fd = f->dents ; fd; fd = fd->next) {
|
||||
- if (fd->ino)
|
||||
+ if (fd->ino) {
|
||||
+ mutex_unlock(&f->sem);
|
||||
return -ENOTEMPTY;
|
||||
+ }
|
||||
}
|
||||
+ mutex_unlock(&f->sem);
|
||||
|
||||
ret = jffs2_do_unlink(c, dir_f, dentry->d_name.name,
|
||||
dentry->d_name.len, f, now);
|
||||
diff --git a/fs/romfs/storage.c b/fs/romfs/storage.c
|
||||
index f86f51f99aceb..1dcadd22b440d 100644
|
||||
--- a/fs/romfs/storage.c
|
||||
+++ b/fs/romfs/storage.c
|
||||
@@ -221,10 +221,8 @@ int romfs_dev_read(struct super_block *sb, unsigned long pos,
|
||||
size_t limit;
|
||||
|
||||
limit = romfs_maxsize(sb);
|
||||
- if (pos >= limit)
|
||||
+ if (pos >= limit || buflen > limit - pos)
|
||||
return -EIO;
|
||||
- if (buflen > limit - pos)
|
||||
- buflen = limit - pos;
|
||||
|
||||
#ifdef CONFIG_ROMFS_ON_MTD
|
||||
if (sb->s_mtd)
|
||||
diff --git a/fs/xfs/xfs_sysfs.h b/fs/xfs/xfs_sysfs.h
|
||||
index be692e59938db..c457b010c623d 100644
|
||||
--- a/fs/xfs/xfs_sysfs.h
|
||||
+++ b/fs/xfs/xfs_sysfs.h
|
||||
@@ -44,9 +44,11 @@ xfs_sysfs_init(
|
||||
struct xfs_kobj *parent_kobj,
|
||||
const char *name)
|
||||
{
|
||||
+ struct kobject *parent;
|
||||
+
|
||||
+ parent = parent_kobj ? &parent_kobj->kobject : NULL;
|
||||
init_completion(&kobj->complete);
|
||||
- return kobject_init_and_add(&kobj->kobject, ktype,
|
||||
- &parent_kobj->kobject, "%s", name);
|
||||
+ return kobject_init_and_add(&kobj->kobject, ktype, parent, "%s", name);
|
||||
}
|
||||
|
||||
static inline void
|
||||
diff --git a/fs/xfs/xfs_trans_dquot.c b/fs/xfs/xfs_trans_dquot.c
|
||||
index ce78534a047ee..bb8de2dddabe2 100644
|
||||
--- a/fs/xfs/xfs_trans_dquot.c
|
||||
+++ b/fs/xfs/xfs_trans_dquot.c
|
||||
@@ -662,7 +662,7 @@ xfs_trans_dqresv(
|
||||
}
|
||||
}
|
||||
if (ninos > 0) {
|
||||
- total_count = be64_to_cpu(dqp->q_core.d_icount) + ninos;
|
||||
+ total_count = dqp->q_res_icount + ninos;
|
||||
timer = be32_to_cpu(dqp->q_core.d_itimer);
|
||||
warns = be16_to_cpu(dqp->q_core.d_iwarns);
|
||||
warnlimit = dqp->q_mount->m_quotainfo->qi_iwarnlimit;
|
||||
diff --git a/include/linux/mm.h b/include/linux/mm.h
|
||||
index 03cf5526e4456..2b17d2fca4299 100644
|
||||
--- a/include/linux/mm.h
|
||||
+++ b/include/linux/mm.h
|
||||
@@ -1123,6 +1123,10 @@ void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma,
|
||||
* followed by taking the mmap_sem for writing before modifying the
|
||||
* vmas or anything the coredump pretends not to change from under it.
|
||||
*
|
||||
+ * It also has to be called when mmgrab() is used in the context of
|
||||
+ * the process, but then the mm_count refcount is transferred outside
|
||||
+ * the context of the process to run down_write() on that pinned mm.
|
||||
+ *
|
||||
* NOTE: find_extend_vma() called from GUP context is the only place
|
||||
* that can modify the "mm" (notably the vm_start/end) under mmap_sem
|
||||
* for reading and outside the context of the process, so it is also
|
||||
diff --git a/include/net/sock.h b/include/net/sock.h
|
||||
index 426a57874964c..31198b32d9122 100644
|
||||
--- a/include/net/sock.h
|
||||
+++ b/include/net/sock.h
|
||||
@@ -779,6 +779,8 @@ static inline int sk_memalloc_socks(void)
|
||||
{
|
||||
return static_key_false(&memalloc_socks);
|
||||
}
|
||||
+
|
||||
+void __receive_sock(struct file *file);
|
||||
#else
|
||||
|
||||
static inline int sk_memalloc_socks(void)
|
||||
@@ -786,6 +788,8 @@ static inline int sk_memalloc_socks(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static inline void __receive_sock(struct file *file)
|
||||
+{ }
|
||||
#endif
|
||||
|
||||
static inline gfp_t sk_gfp_atomic(const struct sock *sk, gfp_t gfp_mask)
|
||||
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
|
||||
index 465786cd6490e..f38d24bb8a1bc 100644
|
||||
--- a/mm/huge_memory.c
|
||||
+++ b/mm/huge_memory.c
|
||||
@@ -2136,7 +2136,7 @@ static void insert_to_mm_slots_hash(struct mm_struct *mm,
|
||||
|
||||
static inline int khugepaged_test_exit(struct mm_struct *mm)
|
||||
{
|
||||
- return atomic_read(&mm->mm_users) == 0;
|
||||
+ return atomic_read(&mm->mm_users) == 0 || !mmget_still_valid(mm);
|
||||
}
|
||||
|
||||
int __khugepaged_enter(struct mm_struct *mm)
|
||||
@@ -2149,7 +2149,7 @@ int __khugepaged_enter(struct mm_struct *mm)
|
||||
return -ENOMEM;
|
||||
|
||||
/* __khugepaged_exit() must not run from under us */
|
||||
- VM_BUG_ON_MM(khugepaged_test_exit(mm), mm);
|
||||
+ VM_BUG_ON_MM(atomic_read(&mm->mm_users) == 0, mm);
|
||||
if (unlikely(test_and_set_bit(MMF_VM_HUGEPAGE, &mm->flags))) {
|
||||
free_mm_slot(mm_slot);
|
||||
return 0;
|
||||
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
|
||||
index 3a1501e854832..baac9a09ec0a1 100644
|
||||
--- a/mm/hugetlb.c
|
||||
+++ b/mm/hugetlb.c
|
||||
@@ -4257,6 +4257,7 @@ static bool vma_shareable(struct vm_area_struct *vma, unsigned long addr)
|
||||
return false;
|
||||
}
|
||||
|
||||
+#define ALIGN_DOWN(x, a) __ALIGN_KERNEL((x) - ((a) - 1), (a))
|
||||
/*
|
||||
* Determine if start,end range within vma could be mapped by shared pmd.
|
||||
* If yes, adjust start and end to cover range associated with possible
|
||||
@@ -4265,25 +4266,21 @@ static bool vma_shareable(struct vm_area_struct *vma, unsigned long addr)
|
||||
void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma,
|
||||
unsigned long *start, unsigned long *end)
|
||||
{
|
||||
- unsigned long check_addr = *start;
|
||||
+ unsigned long a_start, a_end;
|
||||
|
||||
if (!(vma->vm_flags & VM_MAYSHARE))
|
||||
return;
|
||||
|
||||
- for (check_addr = *start; check_addr < *end; check_addr += PUD_SIZE) {
|
||||
- unsigned long a_start = check_addr & PUD_MASK;
|
||||
- unsigned long a_end = a_start + PUD_SIZE;
|
||||
+ /* Extend the range to be PUD aligned for a worst case scenario */
|
||||
+ a_start = ALIGN_DOWN(*start, PUD_SIZE);
|
||||
+ a_end = ALIGN(*end, PUD_SIZE);
|
||||
|
||||
- /*
|
||||
- * If sharing is possible, adjust start/end if necessary.
|
||||
- */
|
||||
- if (range_in_vma(vma, a_start, a_end)) {
|
||||
- if (a_start < *start)
|
||||
- *start = a_start;
|
||||
- if (a_end > *end)
|
||||
- *end = a_end;
|
||||
- }
|
||||
- }
|
||||
+ /*
|
||||
+ * Intersect the range with the vma range, since pmd sharing won't be
|
||||
+ * across vma after all
|
||||
+ */
|
||||
+ *start = max(vma->vm_start, a_start);
|
||||
+ *end = min(vma->vm_end, a_end);
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
|
||||
index df589416ace6c..14bab5fa1b656 100644
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -843,6 +843,11 @@ static void free_pcppages_bulk(struct zone *zone, int count,
|
||||
if (nr_scanned)
|
||||
__mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
|
||||
|
||||
+ /*
|
||||
+ * Ensure proper count is passed which otherwise would stuck in the
|
||||
+ * below while (list_empty(list)) loop.
|
||||
+ */
|
||||
+ count = min(pcp->count, count);
|
||||
while (to_free) {
|
||||
struct page *page;
|
||||
struct list_head *list;
|
||||
@@ -6285,7 +6290,7 @@ int __meminit init_per_zone_wmark_min(void)
|
||||
setup_per_zone_inactive_ratio();
|
||||
return 0;
|
||||
}
|
||||
-core_initcall(init_per_zone_wmark_min)
|
||||
+postcore_initcall(init_per_zone_wmark_min)
|
||||
|
||||
/*
|
||||
* min_free_kbytes_sysctl_handler - just a wrapper around proc_dointvec() so
|
||||
diff --git a/net/compat.c b/net/compat.c
|
||||
index d676840104556..20c5e5f215f23 100644
|
||||
--- a/net/compat.c
|
||||
+++ b/net/compat.c
|
||||
@@ -284,6 +284,7 @@ void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
|
||||
break;
|
||||
}
|
||||
/* Bump the usage count and install the file. */
|
||||
+ __receive_sock(fp[i]);
|
||||
fd_install(new_fd, get_file(fp[i]));
|
||||
}
|
||||
|
||||
diff --git a/net/core/sock.c b/net/core/sock.c
|
||||
index 120d5058d81ae..82f9a7dbea6fe 100644
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -2275,6 +2275,27 @@ int sock_no_mmap(struct file *file, struct socket *sock, struct vm_area_struct *
|
||||
}
|
||||
EXPORT_SYMBOL(sock_no_mmap);
|
||||
|
||||
+/*
|
||||
+ * When a file is received (via SCM_RIGHTS, etc), we must bump the
|
||||
+ * various sock-based usage counts.
|
||||
+ */
|
||||
+void __receive_sock(struct file *file)
|
||||
+{
|
||||
+ struct socket *sock;
|
||||
+ int error;
|
||||
+
|
||||
+ /*
|
||||
+ * The resulting value of "error" is ignored here since we only
|
||||
+ * need to take action when the file is a socket and testing
|
||||
+ * "sock" for NULL is sufficient.
|
||||
+ */
|
||||
+ sock = sock_from_file(file, &error);
|
||||
+ if (sock) {
|
||||
+ sock_update_netprioidx(sock->sk);
|
||||
+ sock_update_classid(sock->sk);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
ssize_t sock_no_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags)
|
||||
{
|
||||
ssize_t res;
|
||||
diff --git a/sound/soc/intel/atom/sst-mfld-platform-pcm.c b/sound/soc/intel/atom/sst-mfld-platform-pcm.c
|
||||
index 1d9dfb92b3b48..edb244331e6e9 100644
|
||||
--- a/sound/soc/intel/atom/sst-mfld-platform-pcm.c
|
||||
+++ b/sound/soc/intel/atom/sst-mfld-platform-pcm.c
|
||||
@@ -338,7 +338,7 @@ static int sst_media_open(struct snd_pcm_substream *substream,
|
||||
|
||||
ret_val = power_up_sst(stream);
|
||||
if (ret_val < 0)
|
||||
- return ret_val;
|
||||
+ goto out_power_up;
|
||||
|
||||
/* Make sure, that the period size is always even */
|
||||
snd_pcm_hw_constraint_step(substream->runtime, 0,
|
||||
@@ -347,8 +347,9 @@ static int sst_media_open(struct snd_pcm_substream *substream,
|
||||
return snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
out_ops:
|
||||
- kfree(stream);
|
||||
mutex_unlock(&sst_lock);
|
||||
+out_power_up:
|
||||
+ kfree(stream);
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
|
||||
index c694f10d004cc..1b73537af91db 100644
|
||||
--- a/tools/perf/util/probe-finder.c
|
||||
+++ b/tools/perf/util/probe-finder.c
|
||||
@@ -1274,7 +1274,7 @@ int debuginfo__find_trace_events(struct debuginfo *dbg,
|
||||
tf.ntevs = 0;
|
||||
|
||||
ret = debuginfo__find_probes(dbg, &tf.pf);
|
||||
- if (ret < 0) {
|
||||
+ if (ret < 0 || tf.ntevs == 0) {
|
||||
for (i = 0; i < tf.ntevs; i++)
|
||||
clear_probe_trace_event(&tf.tevs[i]);
|
||||
zfree(tevs);
|
2129
patch/kernel/rockpis-legacy/patch-4.4.234-235.patch
Normal file
2129
patch/kernel/rockpis-legacy/patch-4.4.234-235.patch
Normal file
File diff suppressed because it is too large
Load diff
2361
patch/kernel/rockpis-legacy/patch-4.4.235-236-changed.patch
Normal file
2361
patch/kernel/rockpis-legacy/patch-4.4.235-236-changed.patch
Normal file
File diff suppressed because it is too large
Load diff
2002
patch/kernel/rockpis-legacy/patch-4.4.236-237.patch
Normal file
2002
patch/kernel/rockpis-legacy/patch-4.4.236-237.patch
Normal file
File diff suppressed because it is too large
Load diff
2701
patch/kernel/rockpis-legacy/patch-4.4.237-238.patch
Normal file
2701
patch/kernel/rockpis-legacy/patch-4.4.237-238.patch
Normal file
File diff suppressed because it is too large
Load diff
1487
patch/kernel/rockpis-legacy/patch-4.4.238-239.patch
Normal file
1487
patch/kernel/rockpis-legacy/patch-4.4.238-239.patch
Normal file
File diff suppressed because it is too large
Load diff
555
patch/kernel/rockpis-legacy/patch-4.4.239-240.patch
Normal file
555
patch/kernel/rockpis-legacy/patch-4.4.239-240.patch
Normal file
|
@ -0,0 +1,555 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index 74072b5a958b2..69e7cd30e6465 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 239
|
||||
+SUBLEVEL = 240
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/drivers/crypto/qat/qat_common/qat_algs.c b/drivers/crypto/qat/qat_common/qat_algs.c
|
||||
index 367b6661ee041..4dda526bd21b8 100644
|
||||
--- a/drivers/crypto/qat/qat_common/qat_algs.c
|
||||
+++ b/drivers/crypto/qat/qat_common/qat_algs.c
|
||||
@@ -822,6 +822,11 @@ static int qat_alg_aead_dec(struct aead_request *areq)
|
||||
struct icp_qat_fw_la_bulk_req *msg;
|
||||
int digst_size = crypto_aead_authsize(aead_tfm);
|
||||
int ret, ctr = 0;
|
||||
+ u32 cipher_len;
|
||||
+
|
||||
+ cipher_len = areq->cryptlen - digst_size;
|
||||
+ if (cipher_len % AES_BLOCK_SIZE != 0)
|
||||
+ return -EINVAL;
|
||||
|
||||
ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req);
|
||||
if (unlikely(ret))
|
||||
@@ -836,7 +841,7 @@ static int qat_alg_aead_dec(struct aead_request *areq)
|
||||
qat_req->req.comn_mid.src_data_addr = qat_req->buf.blp;
|
||||
qat_req->req.comn_mid.dest_data_addr = qat_req->buf.bloutp;
|
||||
cipher_param = (void *)&qat_req->req.serv_specif_rqpars;
|
||||
- cipher_param->cipher_length = areq->cryptlen - digst_size;
|
||||
+ cipher_param->cipher_length = cipher_len;
|
||||
cipher_param->cipher_offset = areq->assoclen;
|
||||
memcpy(cipher_param->u.cipher_IV_array, areq->iv, AES_BLOCK_SIZE);
|
||||
auth_param = (void *)((uint8_t *)cipher_param + sizeof(*cipher_param));
|
||||
@@ -865,6 +870,9 @@ static int qat_alg_aead_enc(struct aead_request *areq)
|
||||
uint8_t *iv = areq->iv;
|
||||
int ret, ctr = 0;
|
||||
|
||||
+ if (areq->cryptlen % AES_BLOCK_SIZE != 0)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
ret = qat_alg_sgl_to_bufl(ctx->inst, areq->src, areq->dst, qat_req);
|
||||
if (unlikely(ret))
|
||||
return ret;
|
||||
diff --git a/drivers/media/usb/usbtv/usbtv-core.c b/drivers/media/usb/usbtv/usbtv-core.c
|
||||
index a2eb87d74656f..8a1440a573a33 100644
|
||||
--- a/drivers/media/usb/usbtv/usbtv-core.c
|
||||
+++ b/drivers/media/usb/usbtv/usbtv-core.c
|
||||
@@ -96,7 +96,8 @@ static int usbtv_probe(struct usb_interface *intf,
|
||||
|
||||
usbtv_audio_fail:
|
||||
/* we must not free at this point */
|
||||
- usb_get_dev(usbtv->udev);
|
||||
+ v4l2_device_get(&usbtv->v4l2_dev);
|
||||
+ /* this will undo the v4l2_device_get() */
|
||||
usbtv_video_free(usbtv);
|
||||
|
||||
usbtv_video_fail:
|
||||
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
|
||||
index 57001f8f727a3..6ed2959ce4dc0 100644
|
||||
--- a/drivers/spi/spi.c
|
||||
+++ b/drivers/spi/spi.c
|
||||
@@ -1917,13 +1917,13 @@ static int __unregister(struct device *dev, void *null)
|
||||
*/
|
||||
void spi_unregister_master(struct spi_master *master)
|
||||
{
|
||||
+ device_for_each_child(&master->dev, NULL, __unregister);
|
||||
+
|
||||
if (master->queued) {
|
||||
if (spi_destroy_queue(master))
|
||||
dev_err(&master->dev, "queue remove failed\n");
|
||||
}
|
||||
|
||||
- device_for_each_child(&master->dev, NULL, __unregister);
|
||||
-
|
||||
mutex_lock(&board_lock);
|
||||
list_del(&master->list);
|
||||
mutex_unlock(&board_lock);
|
||||
diff --git a/drivers/staging/comedi/drivers/vmk80xx.c b/drivers/staging/comedi/drivers/vmk80xx.c
|
||||
index 95e53cfd76a41..51f9a7800edf5 100644
|
||||
--- a/drivers/staging/comedi/drivers/vmk80xx.c
|
||||
+++ b/drivers/staging/comedi/drivers/vmk80xx.c
|
||||
@@ -676,6 +676,9 @@ static int vmk80xx_find_usb_endpoints(struct comedi_device *dev)
|
||||
if (!devpriv->ep_rx || !devpriv->ep_tx)
|
||||
return -ENODEV;
|
||||
|
||||
+ if (!usb_endpoint_maxp(devpriv->ep_rx) || !usb_endpoint_maxp(devpriv->ep_tx))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
|
||||
index 25e76d4c15054..5b42b8d760cb4 100644
|
||||
--- a/drivers/usb/serial/ftdi_sio.c
|
||||
+++ b/drivers/usb/serial/ftdi_sio.c
|
||||
@@ -1032,6 +1032,11 @@ static const struct usb_device_id id_table_combined[] = {
|
||||
/* U-Blox devices */
|
||||
{ USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ZED_PID) },
|
||||
{ USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ODIN_PID) },
|
||||
+ /* FreeCalypso USB adapters */
|
||||
+ { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_BUF_PID),
|
||||
+ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
|
||||
+ { USB_DEVICE(FTDI_VID, FTDI_FALCONIA_JTAG_UNBUF_PID),
|
||||
+ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
||||
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
|
||||
index c33e06752b5f0..f3302516a1e4f 100644
|
||||
--- a/drivers/usb/serial/ftdi_sio_ids.h
|
||||
+++ b/drivers/usb/serial/ftdi_sio_ids.h
|
||||
@@ -38,6 +38,13 @@
|
||||
|
||||
#define FTDI_LUMEL_PD12_PID 0x6002
|
||||
|
||||
+/*
|
||||
+ * Custom USB adapters made by Falconia Partners LLC
|
||||
+ * for FreeCalypso project, ID codes allocated to Falconia by FTDI.
|
||||
+ */
|
||||
+#define FTDI_FALCONIA_JTAG_BUF_PID 0x7150
|
||||
+#define FTDI_FALCONIA_JTAG_UNBUF_PID 0x7151
|
||||
+
|
||||
/* Sienna Serial Interface by Secyourit GmbH */
|
||||
#define FTDI_SIENNA_PID 0x8348
|
||||
|
||||
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
|
||||
index 8cff50ef4fd14..5017d37afe392 100644
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -529,6 +529,7 @@ static void option_instat_callback(struct urb *urb);
|
||||
/* Cellient products */
|
||||
#define CELLIENT_VENDOR_ID 0x2692
|
||||
#define CELLIENT_PRODUCT_MEN200 0x9005
|
||||
+#define CELLIENT_PRODUCT_MPL200 0x9025
|
||||
|
||||
/* Hyundai Petatel Inc. products */
|
||||
#define PETATEL_VENDOR_ID 0x1ff4
|
||||
@@ -1171,6 +1172,8 @@ static const struct usb_device_id option_ids[] = {
|
||||
.driver_info = NCTRL(2) | RSVD(3) },
|
||||
{ USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1053, 0xff), /* Telit FN980 (ECM) */
|
||||
.driver_info = NCTRL(0) | RSVD(1) },
|
||||
+ { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1054, 0xff), /* Telit FT980-KS */
|
||||
+ .driver_info = NCTRL(2) | RSVD(3) },
|
||||
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910),
|
||||
.driver_info = NCTRL(0) | RSVD(1) | RSVD(3) },
|
||||
{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM),
|
||||
@@ -1967,6 +1970,8 @@ static const struct usb_device_id option_ids[] = {
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) },
|
||||
{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
|
||||
+ { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MPL200),
|
||||
+ .driver_info = RSVD(1) | RSVD(4) },
|
||||
{ USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) },
|
||||
{ USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) },
|
||||
{ USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, TPLINK_PRODUCT_LTE, 0xff, 0x00, 0x00) }, /* TP-Link LTE Module */
|
||||
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
|
||||
index 4fcded2971d1d..bf5533d6d83bd 100644
|
||||
--- a/drivers/usb/serial/pl2303.c
|
||||
+++ b/drivers/usb/serial/pl2303.c
|
||||
@@ -89,6 +89,7 @@ static const struct usb_device_id id_table[] = {
|
||||
{ USB_DEVICE(HP_VENDOR_ID, HP_LD220_PRODUCT_ID) },
|
||||
{ USB_DEVICE(HP_VENDOR_ID, HP_LD220TA_PRODUCT_ID) },
|
||||
{ USB_DEVICE(HP_VENDOR_ID, HP_LD381_PRODUCT_ID) },
|
||||
+ { USB_DEVICE(HP_VENDOR_ID, HP_LD381GC_PRODUCT_ID) },
|
||||
{ USB_DEVICE(HP_VENDOR_ID, HP_LD960_PRODUCT_ID) },
|
||||
{ USB_DEVICE(HP_VENDOR_ID, HP_LD960TA_PRODUCT_ID) },
|
||||
{ USB_DEVICE(HP_VENDOR_ID, HP_LCM220_PRODUCT_ID) },
|
||||
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
|
||||
index 54d2fb974a418..9d27c076f477e 100644
|
||||
--- a/drivers/usb/serial/pl2303.h
|
||||
+++ b/drivers/usb/serial/pl2303.h
|
||||
@@ -125,6 +125,7 @@
|
||||
|
||||
/* Hewlett-Packard POS Pole Displays */
|
||||
#define HP_VENDOR_ID 0x03f0
|
||||
+#define HP_LD381GC_PRODUCT_ID 0x0183
|
||||
#define HP_LM920_PRODUCT_ID 0x026b
|
||||
#define HP_TD620_PRODUCT_ID 0x0956
|
||||
#define HP_LD960_PRODUCT_ID 0x0b39
|
||||
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
|
||||
index 60ba35087d126..cfb4691d92741 100644
|
||||
--- a/fs/reiserfs/inode.c
|
||||
+++ b/fs/reiserfs/inode.c
|
||||
@@ -1553,11 +1553,7 @@ void reiserfs_read_locked_inode(struct inode *inode,
|
||||
* set version 1, version 2 could be used too, because stat data
|
||||
* key is the same in both versions
|
||||
*/
|
||||
- key.version = KEY_FORMAT_3_5;
|
||||
- key.on_disk_key.k_dir_id = dirino;
|
||||
- key.on_disk_key.k_objectid = inode->i_ino;
|
||||
- key.on_disk_key.k_offset = 0;
|
||||
- key.on_disk_key.k_type = 0;
|
||||
+ _make_cpu_key(&key, KEY_FORMAT_3_5, dirino, inode->i_ino, 0, 0, 3);
|
||||
|
||||
/* look for the object's stat data */
|
||||
retval = search_item(inode->i_sb, &key, &path_to_sd);
|
||||
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
|
||||
index d424b3d4bf3b4..92d39cbc2d64d 100644
|
||||
--- a/fs/reiserfs/xattr.c
|
||||
+++ b/fs/reiserfs/xattr.c
|
||||
@@ -656,6 +656,13 @@ reiserfs_xattr_get(struct inode *inode, const char *name, void *buffer,
|
||||
if (get_inode_sd_version(inode) == STAT_DATA_V1)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
+ /*
|
||||
+ * priv_root needn't be initialized during mount so allow initial
|
||||
+ * lookups to succeed.
|
||||
+ */
|
||||
+ if (!REISERFS_SB(inode->i_sb)->priv_root)
|
||||
+ return 0;
|
||||
+
|
||||
dentry = xattr_lookup(inode, name, XATTR_REPLACE);
|
||||
if (IS_ERR(dentry)) {
|
||||
err = PTR_ERR(dentry);
|
||||
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
|
||||
index 7c0c83dfe86e3..5aaf6cdb121a1 100644
|
||||
--- a/include/net/bluetooth/hci_core.h
|
||||
+++ b/include/net/bluetooth/hci_core.h
|
||||
@@ -1235,16 +1235,34 @@ static inline void hci_auth_cfm(struct hci_conn *conn, __u8 status)
|
||||
conn->security_cfm_cb(conn, status);
|
||||
}
|
||||
|
||||
-static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status,
|
||||
- __u8 encrypt)
|
||||
+static inline void hci_encrypt_cfm(struct hci_conn *conn, __u8 status)
|
||||
{
|
||||
struct hci_cb *cb;
|
||||
+ __u8 encrypt;
|
||||
+
|
||||
+ if (conn->state == BT_CONFIG) {
|
||||
+ if (!status)
|
||||
+ conn->state = BT_CONNECTED;
|
||||
|
||||
- if (conn->sec_level == BT_SECURITY_SDP)
|
||||
- conn->sec_level = BT_SECURITY_LOW;
|
||||
+ hci_connect_cfm(conn, status);
|
||||
+ hci_conn_drop(conn);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
- if (conn->pending_sec_level > conn->sec_level)
|
||||
- conn->sec_level = conn->pending_sec_level;
|
||||
+ if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
||||
+ encrypt = 0x00;
|
||||
+ else if (test_bit(HCI_CONN_AES_CCM, &conn->flags))
|
||||
+ encrypt = 0x02;
|
||||
+ else
|
||||
+ encrypt = 0x01;
|
||||
+
|
||||
+ if (!status) {
|
||||
+ if (conn->sec_level == BT_SECURITY_SDP)
|
||||
+ conn->sec_level = BT_SECURITY_LOW;
|
||||
+
|
||||
+ if (conn->pending_sec_level > conn->sec_level)
|
||||
+ conn->sec_level = conn->pending_sec_level;
|
||||
+ }
|
||||
|
||||
mutex_lock(&hci_cb_list_lock);
|
||||
list_for_each_entry(cb, &hci_cb_list, list) {
|
||||
diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
|
||||
index 5f123c3320a7b..8f918155685db 100644
|
||||
--- a/net/bluetooth/a2mp.c
|
||||
+++ b/net/bluetooth/a2mp.c
|
||||
@@ -233,6 +233,9 @@ static int a2mp_discover_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
struct a2mp_info_req req;
|
||||
|
||||
found = true;
|
||||
+
|
||||
+ memset(&req, 0, sizeof(req));
|
||||
+
|
||||
req.id = cl->id;
|
||||
a2mp_send(mgr, A2MP_GETINFO_REQ, __next_ident(mgr),
|
||||
sizeof(req), &req);
|
||||
@@ -312,6 +315,8 @@ static int a2mp_getinfo_req(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
if (!hdev || hdev->dev_type != HCI_AMP) {
|
||||
struct a2mp_info_rsp rsp;
|
||||
|
||||
+ memset(&rsp, 0, sizeof(rsp));
|
||||
+
|
||||
rsp.id = req->id;
|
||||
rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
|
||||
|
||||
@@ -355,6 +360,8 @@ static int a2mp_getinfo_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
if (!ctrl)
|
||||
return -ENOMEM;
|
||||
|
||||
+ memset(&req, 0, sizeof(req));
|
||||
+
|
||||
req.id = rsp->id;
|
||||
a2mp_send(mgr, A2MP_GETAMPASSOC_REQ, __next_ident(mgr), sizeof(req),
|
||||
&req);
|
||||
@@ -383,6 +390,8 @@ static int a2mp_getampassoc_req(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
struct a2mp_amp_assoc_rsp rsp;
|
||||
rsp.id = req->id;
|
||||
|
||||
+ memset(&rsp, 0, sizeof(rsp));
|
||||
+
|
||||
if (tmp) {
|
||||
rsp.status = A2MP_STATUS_COLLISION_OCCURED;
|
||||
amp_mgr_put(tmp);
|
||||
@@ -471,7 +480,6 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
struct a2mp_cmd *hdr)
|
||||
{
|
||||
struct a2mp_physlink_req *req = (void *) skb->data;
|
||||
-
|
||||
struct a2mp_physlink_rsp rsp;
|
||||
struct hci_dev *hdev;
|
||||
struct hci_conn *hcon;
|
||||
@@ -482,6 +490,8 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
|
||||
BT_DBG("local_id %d, remote_id %d", req->local_id, req->remote_id);
|
||||
|
||||
+ memset(&rsp, 0, sizeof(rsp));
|
||||
+
|
||||
rsp.local_id = req->remote_id;
|
||||
rsp.remote_id = req->local_id;
|
||||
|
||||
@@ -560,6 +570,8 @@ static int a2mp_discphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
|
||||
|
||||
BT_DBG("local_id %d remote_id %d", req->local_id, req->remote_id);
|
||||
|
||||
+ memset(&rsp, 0, sizeof(rsp));
|
||||
+
|
||||
rsp.local_id = req->remote_id;
|
||||
rsp.remote_id = req->local_id;
|
||||
rsp.status = A2MP_STATUS_SUCCESS;
|
||||
@@ -682,6 +694,8 @@ static int a2mp_chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
|
||||
if (err) {
|
||||
struct a2mp_cmd_rej rej;
|
||||
|
||||
+ memset(&rej, 0, sizeof(rej));
|
||||
+
|
||||
rej.reason = cpu_to_le16(0);
|
||||
hdr = (void *) skb->data;
|
||||
|
||||
@@ -905,6 +919,8 @@ void a2mp_send_getinfo_rsp(struct hci_dev *hdev)
|
||||
|
||||
BT_DBG("%s mgr %p", hdev->name, mgr);
|
||||
|
||||
+ memset(&rsp, 0, sizeof(rsp));
|
||||
+
|
||||
rsp.id = hdev->id;
|
||||
rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
|
||||
|
||||
@@ -1002,6 +1018,8 @@ void a2mp_send_create_phy_link_rsp(struct hci_dev *hdev, u8 status)
|
||||
if (!mgr)
|
||||
return;
|
||||
|
||||
+ memset(&rsp, 0, sizeof(rsp));
|
||||
+
|
||||
hs_hcon = hci_conn_hash_lookup_state(hdev, AMP_LINK, BT_CONNECT);
|
||||
if (!hs_hcon) {
|
||||
rsp.status = A2MP_STATUS_UNABLE_START_LINK_CREATION;
|
||||
@@ -1034,6 +1052,8 @@ void a2mp_discover_amp(struct l2cap_chan *chan)
|
||||
|
||||
mgr->bredr_chan = chan;
|
||||
|
||||
+ memset(&req, 0, sizeof(req));
|
||||
+
|
||||
req.mtu = cpu_to_le16(L2CAP_A2MP_DEFAULT_MTU);
|
||||
req.ext_feat = 0;
|
||||
a2mp_send(mgr, A2MP_DISCOVER_REQ, 1, sizeof(req), &req);
|
||||
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
|
||||
index 114bcf6ea9168..2c94e3cd3545f 100644
|
||||
--- a/net/bluetooth/hci_conn.c
|
||||
+++ b/net/bluetooth/hci_conn.c
|
||||
@@ -1173,6 +1173,23 @@ int hci_conn_check_link_mode(struct hci_conn *conn)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ /* AES encryption is required for Level 4:
|
||||
+ *
|
||||
+ * BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 3, Part C
|
||||
+ * page 1319:
|
||||
+ *
|
||||
+ * 128-bit equivalent strength for link and encryption keys
|
||||
+ * required using FIPS approved algorithms (E0 not allowed,
|
||||
+ * SAFER+ not allowed, and P-192 not allowed; encryption key
|
||||
+ * not shortened)
|
||||
+ */
|
||||
+ if (conn->sec_level == BT_SECURITY_FIPS &&
|
||||
+ !test_bit(HCI_CONN_AES_CCM, &conn->flags)) {
|
||||
+ bt_dev_err(conn->hdev,
|
||||
+ "Invalid security: Missing AES-CCM usage");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (hci_conn_ssp_enabled(conn) &&
|
||||
!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
||||
return 0;
|
||||
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
|
||||
index 03319ab8a7c6e..7cee89fddcd50 100644
|
||||
--- a/net/bluetooth/hci_event.c
|
||||
+++ b/net/bluetooth/hci_event.c
|
||||
@@ -1133,6 +1133,9 @@ static void store_pending_adv_report(struct hci_dev *hdev, bdaddr_t *bdaddr,
|
||||
{
|
||||
struct discovery_state *d = &hdev->discovery;
|
||||
|
||||
+ if (len > HCI_MAX_AD_LENGTH)
|
||||
+ return;
|
||||
+
|
||||
bacpy(&d->last_adv_addr, bdaddr);
|
||||
d->last_adv_addr_type = bdaddr_type;
|
||||
d->last_adv_rssi = rssi;
|
||||
@@ -2479,7 +2482,7 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
&cp);
|
||||
} else {
|
||||
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
|
||||
- hci_encrypt_cfm(conn, ev->status, 0x00);
|
||||
+ hci_encrypt_cfm(conn, ev->status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2565,22 +2568,7 @@ static void read_enc_key_size_complete(struct hci_dev *hdev, u8 status,
|
||||
conn->enc_key_size = rp->key_size;
|
||||
}
|
||||
|
||||
- if (conn->state == BT_CONFIG) {
|
||||
- conn->state = BT_CONNECTED;
|
||||
- hci_connect_cfm(conn, 0);
|
||||
- hci_conn_drop(conn);
|
||||
- } else {
|
||||
- u8 encrypt;
|
||||
-
|
||||
- if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
||||
- encrypt = 0x00;
|
||||
- else if (test_bit(HCI_CONN_AES_CCM, &conn->flags))
|
||||
- encrypt = 0x02;
|
||||
- else
|
||||
- encrypt = 0x01;
|
||||
-
|
||||
- hci_encrypt_cfm(conn, 0, encrypt);
|
||||
- }
|
||||
+ hci_encrypt_cfm(conn, 0);
|
||||
|
||||
unlock:
|
||||
hci_dev_unlock(hdev);
|
||||
@@ -2627,24 +2615,20 @@ static void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
|
||||
clear_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags);
|
||||
|
||||
+ /* Check link security requirements are met */
|
||||
+ if (!hci_conn_check_link_mode(conn))
|
||||
+ ev->status = HCI_ERROR_AUTH_FAILURE;
|
||||
+
|
||||
if (ev->status && conn->state == BT_CONNECTED) {
|
||||
+ /* Notify upper layers so they can cleanup before
|
||||
+ * disconnecting.
|
||||
+ */
|
||||
+ hci_encrypt_cfm(conn, ev->status);
|
||||
hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE);
|
||||
hci_conn_drop(conn);
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
- /* In Secure Connections Only mode, do not allow any connections
|
||||
- * that are not encrypted with AES-CCM using a P-256 authenticated
|
||||
- * combination key.
|
||||
- */
|
||||
- if (hci_dev_test_flag(hdev, HCI_SC_ONLY) &&
|
||||
- (!test_bit(HCI_CONN_AES_CCM, &conn->flags) ||
|
||||
- conn->key_type != HCI_LK_AUTH_COMBINATION_P256)) {
|
||||
- hci_connect_cfm(conn, HCI_ERROR_AUTH_FAILURE);
|
||||
- hci_conn_drop(conn);
|
||||
- goto unlock;
|
||||
- }
|
||||
-
|
||||
/* Try reading the encryption key size for encrypted ACL links */
|
||||
if (!ev->status && ev->encrypt && conn->type == ACL_LINK) {
|
||||
struct hci_cp_read_enc_key_size cp;
|
||||
@@ -2674,14 +2658,7 @@ static void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
notify:
|
||||
- if (conn->state == BT_CONFIG) {
|
||||
- if (!ev->status)
|
||||
- conn->state = BT_CONNECTED;
|
||||
-
|
||||
- hci_connect_cfm(conn, ev->status);
|
||||
- hci_conn_drop(conn);
|
||||
- } else
|
||||
- hci_encrypt_cfm(conn, ev->status, ev->encrypt);
|
||||
+ hci_encrypt_cfm(conn, ev->status);
|
||||
|
||||
unlock:
|
||||
hci_dev_unlock(hdev);
|
||||
@@ -4752,6 +4729,11 @@ static void process_adv_report(struct hci_dev *hdev, u8 type, bdaddr_t *bdaddr,
|
||||
u32 flags;
|
||||
u8 *ptr, real_len;
|
||||
|
||||
+ if (len > HCI_MAX_AD_LENGTH) {
|
||||
+ pr_err_ratelimited("legacy adv larger than 31 bytes");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
/* Find the end of the data in case the report contains padded zero
|
||||
* bytes at the end causing an invalid length value.
|
||||
*
|
||||
@@ -4812,7 +4794,7 @@ static void process_adv_report(struct hci_dev *hdev, u8 type, bdaddr_t *bdaddr,
|
||||
*/
|
||||
conn = check_pending_le_conn(hdev, bdaddr, bdaddr_type, type,
|
||||
direct_addr);
|
||||
- if (conn && type == LE_ADV_IND) {
|
||||
+ if (conn && type == LE_ADV_IND && len <= HCI_MAX_AD_LENGTH) {
|
||||
/* Store report for later inclusion by
|
||||
* mgmt_device_connected
|
||||
*/
|
||||
@@ -4937,10 +4919,14 @@ static void hci_le_adv_report_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||
struct hci_ev_le_advertising_info *ev = ptr;
|
||||
s8 rssi;
|
||||
|
||||
- rssi = ev->data[ev->length];
|
||||
- process_adv_report(hdev, ev->evt_type, &ev->bdaddr,
|
||||
- ev->bdaddr_type, NULL, 0, rssi,
|
||||
- ev->data, ev->length);
|
||||
+ if (ev->length <= HCI_MAX_AD_LENGTH) {
|
||||
+ rssi = ev->data[ev->length];
|
||||
+ process_adv_report(hdev, ev->evt_type, &ev->bdaddr,
|
||||
+ ev->bdaddr_type, NULL, 0, rssi,
|
||||
+ ev->data, ev->length);
|
||||
+ } else {
|
||||
+ bt_dev_err(hdev, "Dropping invalid advertising data");
|
||||
+ }
|
||||
|
||||
ptr += sizeof(*ev) + ev->length + 1;
|
||||
}
|
||||
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
|
||||
index ecc3da6a14a18..ee761fb095594 100644
|
||||
--- a/net/bluetooth/mgmt.c
|
||||
+++ b/net/bluetooth/mgmt.c
|
||||
@@ -628,7 +628,8 @@ static u32 get_supported_settings(struct hci_dev *hdev)
|
||||
|
||||
if (lmp_ssp_capable(hdev)) {
|
||||
settings |= MGMT_SETTING_SSP;
|
||||
- settings |= MGMT_SETTING_HS;
|
||||
+ if (IS_ENABLED(CONFIG_BT_HS))
|
||||
+ settings |= MGMT_SETTING_HS;
|
||||
}
|
||||
|
||||
if (lmp_sc_capable(hdev))
|
||||
@@ -2281,6 +2282,10 @@ static int set_link_security(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||
|
||||
BT_DBG("request for %s", hdev->name);
|
||||
|
||||
+ if (!IS_ENABLED(CONFIG_BT_HS))
|
||||
+ return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
|
||||
+ MGMT_STATUS_NOT_SUPPORTED);
|
||||
+
|
||||
status = mgmt_bredr_support(hdev);
|
||||
if (status)
|
||||
return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_LINK_SECURITY,
|
3167
patch/kernel/rockpis-legacy/patch-4.4.240-241.patch
Normal file
3167
patch/kernel/rockpis-legacy/patch-4.4.240-241.patch
Normal file
File diff suppressed because it is too large
Load diff
2641
patch/kernel/rockpis-legacy/patch-4.4.241-242.patch
Normal file
2641
patch/kernel/rockpis-legacy/patch-4.4.241-242.patch
Normal file
File diff suppressed because it is too large
Load diff
28
patch/kernel/rockpis-legacy/patch-4.4.242-243.patch
Normal file
28
patch/kernel/rockpis-legacy/patch-4.4.242-243.patch
Normal file
|
@ -0,0 +1,28 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index 0ba3fd9144264..99badda272d74 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 242
|
||||
+SUBLEVEL = 243
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
|
||||
index fd12ccc11e262..2313bb93f5c2e 100644
|
||||
--- a/drivers/powercap/powercap_sys.c
|
||||
+++ b/drivers/powercap/powercap_sys.c
|
||||
@@ -379,9 +379,9 @@ static void create_power_zone_common_attributes(
|
||||
&dev_attr_max_energy_range_uj.attr;
|
||||
if (power_zone->ops->get_energy_uj) {
|
||||
if (power_zone->ops->reset_energy_uj)
|
||||
- dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
|
||||
+ dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUSR;
|
||||
else
|
||||
- dev_attr_energy_uj.attr.mode = S_IRUGO;
|
||||
+ dev_attr_energy_uj.attr.mode = S_IRUSR;
|
||||
power_zone->zone_dev_attrs[count++] =
|
||||
&dev_attr_energy_uj.attr;
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index 50e927f348532..0c8f0ba8c34f4 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 9
|
||||
-SUBLEVEL = 3
|
||||
+SUBLEVEL = 4
|
||||
EXTRAVERSION =
|
||||
NAME = Kleptomaniac Octopus
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -141,7 +141,7 @@ index 6c3b038e..f4166fbe 100755
|
|||
+
|
||||
+for file in /dev/* ; do
|
||||
+ CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
|
||||
+ if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
|
||||
+ if [ "\$CURRENT_DEVICE" = "\$boot_device" ]; then
|
||||
+ boot_partition=\$file
|
||||
+ break;
|
||||
+ fi
|
||||
|
|
|
@ -12,20 +12,21 @@ index 84462f3..3291f9f
|
|||
select ENABLE_ARM_SOC_BOOT0_HOOK
|
||||
imply CMD_FASTBOOT
|
||||
diff --git a/include/configs/rk3328_common.h b/include/configs/rk3328_common.h
|
||||
index 513237e..a1bcebd
|
||||
index 6be9ad7..f553425 100644
|
||||
--- a/include/configs/rk3328_common.h
|
||||
+++ b/include/configs/rk3328_common.h
|
||||
@@ -73,12 +73,13 @@
|
||||
"fdt_addr_r=0x01f00000\0" \
|
||||
"kernel_addr_r=0x02000000\0" \
|
||||
"ramdisk_addr_r=0x04000000\0"
|
||||
@@ -57,6 +57,7 @@
|
||||
"fdt_addr_r=0x08300000\0" \
|
||||
"kernel_addr_r=0x00280000\0" \
|
||||
"ramdisk_addr_r=0x0a200000\0"
|
||||
+#define FDTFILE "rockchip/" CONFIG_DEFAULT_DEVICE_TREE ".dtb"
|
||||
|
||||
#include <config_distro_bootcmd.h>
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
ENV_MEM_LAYOUT_SETTINGS \
|
||||
- "fdtfile=" FDTFILE \
|
||||
@@ -64,6 +65,7 @@
|
||||
RKIMG_DET_BOOTDEV \
|
||||
"partitions=" PARTS_DEFAULT \
|
||||
ROCKCHIP_DEVICE_SETTINGS \
|
||||
+ "fdtfile=" FDTFILE "\0" \
|
||||
BOOTENV
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue