Update to Linux 4.19.106

- Rename pre/post scripts
- Integrate fit image configuration form old boot-keys package
- Switch to gzip images
- Update rules.d scripts from Debian's 4.19 build
- Replace defconfig with Baylibre's config, and actually use it

Change-Id: Id66986d65934ae78c22b5c9b12e5ba8566330aae
diff --git a/debian/changelog b/debian/changelog
index 7ec2d09..9fec689 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+linux-mtk (3-1) mendel-day; urgency=medium
+
+  * Update to Linux 4.19.106.
+
+ -- Coral Projects <coral-support@google.com>  Mon, 24 Feb 2020 12:00:00 -0800
+
 linux-mtk (2-1) mendel-chef; urgency=medium
 
   * Update to linux 4.19 linux kernel.
diff --git a/debian/control b/debian/control
index 73d04e3..fdf9c3b 100644
--- a/debian/control
+++ b/debian/control
@@ -3,11 +3,9 @@
 Build-Depends:
     bc,
     bison,
-    boot-keys,
     cpio,
     debhelper (>= 10),
     device-tree-compiler,
-    dh-systemd,
     flex,
     gcc-aarch64-linux-gnu,
     gcc-arm-linux-gnueabihf,
@@ -16,13 +14,12 @@
     libssl-dev:native,
     python,
     python3,
-    tree,
     u-boot-mkimage
 Section: misc
 Priority: optional
 Standards-Version: 3.9.8
 
-Package: linux-image-4.19.32-mtk
+Package: linux-image-4.19.106-mtk
 Section: misc
 Priority: optional
 Architecture: arm64 armhf
@@ -31,20 +28,20 @@
  Linux Image, modules, System map, config, and device tree blobs for
  the Excelsior board.
 
-Package: linux-headers-4.19.32-mtk
+Package: linux-headers-4.19.106-mtk
 Section: misc
 Priority: optional
 Architecture: arm64 armhf
 Provides: linux-headers
 Depends: ${misc:Depends},
-         linux-kbuild-4.19.32-mtk [${Arch}]
+         linux-kbuild-4.19.106-mtk [${Arch}]
 Description: Linux kernel headers for the Excelsior board
- Kernel and userspace headers for the 4.19.32-mtk Linux kernel.
+ Kernel and userspace headers for the 4.19.106-mtk Linux kernel.
 
-Package: linux-kbuild-4.19.32-mtk
+Package: linux-kbuild-4.19.106-mtk
 Section: misc
 Priority: optional
 Architecture: arm64 armhf
 Depends: ${misc:Depends}
 Description: Linux kernel build tools for the Excelsior board
- Support tools for building modules against the 4.19.32-mtk Linux kernel.
+ Support tools for building modules against the 4.19.106-mtk Linux kernel.
diff --git a/debian/defconfig b/debian/defconfig
index be7cbf1..ef84a9c 100644
--- a/debian/defconfig
+++ b/debian/defconfig
@@ -1,51 +1,45 @@
-CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
-CONFIG_FHANDLE=y
 CONFIG_AUDIT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT=y
 CONFIG_CGROUPS=y
-CONFIG_CGROUP_CPUACCT=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_RT_GROUP_SCHED=y
+CONFIG_CGROUP_CPUACCT=y
 CONFIG_NAMESPACES=y
+CONFIG_BLK_DEV_INITRD=y
 CONFIG_SYSCTL_SYSCALL=y
 CONFIG_EMBEDDED=y
 # CONFIG_SLUB_DEBUG is not set
 CONFIG_PROFILING=y
-CONFIG_MODULES=y
-# CONFIG_BLK_DEV_BSG is not set
 CONFIG_ARCH_MEDIATEK=y
-CONFIG_MACH_MT8167=y
 CONFIG_SCHED_MC=y
-CONFIG_NR_CPUS=4
-CONFIG_PREEMPT=y
-# CONFIG_BOUNCE is not set
-CONFIG_ZSMALLOC=y
 CONFIG_SECCOMP=y
 CONFIG_ARMV8_DEPRECATED=y
 CONFIG_SWP_EMULATION=y
 CONFIG_CP15_BARRIER_EMULATION=y
 CONFIG_SETEND_EMULATION=y
-CONFIG_CMDLINE="console=tty0 console=ttyMT0,921600n1 root=/dev/ram vmalloc=496M slub_max_order=0 slub_debug=O loglevel=8 initcall_debug gpt init=/bin/sh "
-# CONFIG_EFI is not set
-CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y
-CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES="mediatek/aud8516p1v1_emmc_sdk_linux"
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
 CONFIG_COMPAT=y
 CONFIG_PM_AUTOSLEEP=y
 CONFIG_PM_WAKELOCKS=y
 CONFIG_PM_DEBUG=y
 CONFIG_PM_ADVANCED_DEBUG=y
 CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
 CONFIG_CPU_FREQ_GOV_POWERSAVE=y
 CONFIG_CPU_FREQ_GOV_USERSPACE=y
 CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_MEDIATEK_CPUFREQ=y
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_MODULES=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_CMA=y
+CONFIG_ZSMALLOC=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
@@ -69,7 +63,6 @@
 CONFIG_INET_AH=y
 CONFIG_INET_ESP=y
 CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
 CONFIG_INET_DIAG_DESTROY=y
 CONFIG_IPV6_ROUTER_PREF=y
 CONFIG_IPV6_ROUTE_INFO=y
@@ -89,7 +82,6 @@
 CONFIG_BRIDGE_NETFILTER=y
 CONFIG_NF_CONNTRACK=y
 CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
 CONFIG_NF_CONNTRACK_FTP=y
 CONFIG_NF_CONNTRACK_PPTP=y
 CONFIG_NF_CONNTRACK_TFTP=y
@@ -110,20 +102,15 @@
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
 CONFIG_NETFILTER_XT_MATCH_POLICY=y
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=y
-CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
 CONFIG_NETFILTER_XT_MATCH_QUOTA=y
-CONFIG_NETFILTER_XT_MATCH_QUOTA2=y
-CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y
 CONFIG_NETFILTER_XT_MATCH_REALM=y
 CONFIG_NETFILTER_XT_MATCH_RECENT=y
-CONFIG_NETFILTER_XT_MATCH_SOCKET=y
 CONFIG_NETFILTER_XT_MATCH_STATE=y
 CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
 CONFIG_NETFILTER_XT_MATCH_STRING=y
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
 CONFIG_NETFILTER_XT_MATCH_TIME=y
 CONFIG_NETFILTER_XT_MATCH_U32=y
-CONFIG_NF_CONNTRACK_IPV4=y
 CONFIG_IP_NF_IPTABLES=y
 CONFIG_IP_NF_FILTER=y
 CONFIG_IP_NF_TARGET_REJECT=y
@@ -134,7 +121,6 @@
 CONFIG_IP_NF_MANGLE=y
 CONFIG_IP_NF_RAW=y
 CONFIG_IP_NF_ARPTABLES=y
-CONFIG_NF_CONNTRACK_IPV6=y
 CONFIG_IP6_NF_IPTABLES=y
 CONFIG_IP6_NF_MATCH_FRAG=y
 CONFIG_IP6_NF_MATCH_IPV6HEADER=y
@@ -159,99 +145,28 @@
 CONFIG_NET_ACT_IPT=y
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_DROP_MONITOR=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_HCIBTSDIO=y
 CONFIG_CFG80211=y
 CONFIG_NL80211_TESTMODE=y
 CONFIG_CFG80211_DEVELOPER_WARNINGS=y
 # CONFIG_CFG80211_DEFAULT_PS is not set
 CONFIG_CFG80211_WEXT=y
+CONFIG_RFKILL=y
 CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_UBI=y
-CONFIG_MTD48=y
-CONFIG_MTD_NAND_MTK=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=64
 CONFIG_ZRAM=y
 CONFIG_BLK_DEV_LOOP=y
-CONFIG_MEDIATEK_SOLUTION=y
-CONFIG_MTK_PLATFORM="mt8167"
-CONFIG_ARCH_MTK_PROJECT="aud8167p3_emmc_yocto"
-CONFIG_MTK_INTERNAL=y
-CONFIG_MTK_PSCI=y
-CONFIG_MTK_FREQ_HOPPING=y
-# CONFIG_MTK_PMIC_WRAP_HAL is not set
-CONFIG_CUSTOM_KERNEL_IMGSENSOR="ov5645_mipi_raw ov5645_mipi_yuv"
-CONFIG_MTK_IMGSENSOR=y
-CONFIG_MTK_CAMERA_ISP=y
-CONFIG_MTK_SEC_VIDEO_PATH_SUPPORT=y
-CONFIG_MTK_DRM_KEY_MNG_SUPPORT=y
-CONFIG_MTK_GPU_SUPPORT=y
-CONFIG_MTK_GPU_VERSION="rgx clark 1.9ED"
-CONFIG_MTK_GPU_COMMON_DVFS_SUPPORT=y
-CONFIG_MTK_LENS=y
-CONFIG_MTK_LENS_DUMMYLENS_SUPPORT=y
-CONFIG_MTK_LENS_OV5645AF_SUPPORT=y
-CONFIG_MTK_SYNC=y
-CONFIG_MTK_VIDEOCODEC_DRIVER=y
-CONFIG_MTK_VIDEOX=y
-CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"
-CONFIG_MTK_AAL_SUPPORT=y
-CONFIG_MTK_SENSOR_SUPPORT=y
-#CONFIG_MTK_BTIF=y
-# CONFIG_MTK_CCCI_DEVICES is not set
-# CONFIG_MTK_CONN_LTE_IDC_SUPPORT is not set
-CONFIG_MTK_COMBO=y
-CONFIG_MTK_COMBO_COMM=n
-CONFIG_MTK_COMBO_COMM_SDIO=n
-# CONFIG_MTK_COMBO_BT=y
-# CONFIG_MTK_COMBO_GPS=y
-CONFIG_MTK_COMBO_WIFI=m
-CONFIG_MTK_ACCDET=y
-CONFIG_ACCDET_EINT=y
-CONFIG_AUXADC_NEED_POWER_ON=y
-CONFIG_AUXADC_NOT_CONTROL_APMIXED_BASE=y
-CONFIG_MTK_DEBUG_LATCH=y
-CONFIG_MTK_L2C_PARITY_CHECK=y
-CONFIG_MTK_DRAMC=y
-# CONFIG_MTK_EMI_MBW is not set
-# CONFIG_MTK_EMI_MPU is not set
-# CONFIG_MTK_GPIO is not set
-# CONFIG_MTK_M4U is not set
-CONFIG_MTK_PSEUDO_M4U=y
-CONFIG_MTK_PWM=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_PWM=y
-CONFIG_PWM_MTK_DISP=y
-CONFIG_PWM=y
-# CONFIG_MTK_SERIAL is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_EEPROM_AT24=m
+CONFIG_RGX_M1_11_5516664=y
 CONFIG_MTK_USBFSH=y
-CONFIG_MTK_MUSBFSH_QMU_SUPPORT=y
-CONFIG_USB_MTK_HDRC=y
-CONFIG_USB_MTK_OTG=y
-CONFIG_MTK_UART_USB_SWITCH=y
-CONFIG_MTK_MUSB_PORT0_LOWPOWER_MODE=y
-# CONFIG_MTK_CACHE_DUMP is not set
-CONFIG_MTK_AEE_FEATURE=y
-CONFIG_MTK_CHIP=y
-CONFIG_MTK_IN_HOUSE_TEE_SUPPORT=y
-CONFIG_MTPROF=y
-CONFIG_MTK_RAM_CONSOLE=y
-CONFIG_MTK_RAM_CONSOLE_USING_DRAM=y
-CONFIG_MTK_RAM_CONSOLE_SIZE=0x3000
-CONFIG_MTK_RAM_CONSOLE_ADDR=0xF912D000
-CONFIG_MTK_RAM_CONSOLE_DRAM_SIZE=0x10000
-CONFIG_MTK_RAM_CONSOLE_DRAM_ADDR=0x44400000
-CONFIG_MTK_CPU_AFFINITY=y
-CONFIG_MTK_LOAD_BALANCE_ENHANCEMENT=y
-CONFIG_MTK_SCHED_INTEROP=y
-CONFIG_MTK_CPU_TOPOLOGY=y
-CONFIG_MTK_SCHED_RQAVG_KS=y
-CONFIG_MTK_SCHED_RQAVG_US=y
-CONFIG_MTK_DYNAMIC_BOOST=y
-CONFIG_MTK_SECURE_EFUSE=y
-CONFIG_MTK_IRRX=y
-CONFIG_MTK_IRRX_NEC=y
-CONFIG_LIRC=y
 CONFIG_SCSI=y
+# CONFIG_SCSI_MQ_DEFAULT is not set
 CONFIG_BLK_DEV_SD=y
 CONFIG_SCSI_SCAN_ASYNC=y
 # CONFIG_SCSI_LOWLEVEL is not set
@@ -259,11 +174,15 @@
 CONFIG_BLK_DEV_DM=y
 CONFIG_DM_CRYPT=y
 CONFIG_DM_UEVENT=y
-CONFIG_DM_VERITY=n
-CONFIG_DM_VERITY_FEC=n
+CONFIG_DM_VERITY=y
+CONFIG_DM_VERITY_FEC=y
 CONFIG_NETDEVICES=y
 CONFIG_IFB=y
 CONFIG_TUN=y
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+CONFIG_NET_VENDOR_MEDIATEK=y
+CONFIG_NET_MEDIATEK_STAR=y
 CONFIG_PPP=y
 CONFIG_PPP_BSDCOMP=y
 CONFIG_PPP_DEFLATE=y
@@ -271,24 +190,19 @@
 CONFIG_PPP_MPPE=y
 CONFIG_PPP_MULTILINK=y
 CONFIG_PPPOE=y
-CONFIG_PPPOLAC=y
-CONFIG_PPPOPNS=y
 CONFIG_PPP_ASYNC=y
 CONFIG_PPP_SYNC_TTY=y
+CONFIG_INPUT_MATRIXKMAP=y
 CONFIG_INPUT_EVDEV=y
-CONFIG_KEYBOARD_MTK=y
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_KEYBOARD_MTK_PMIC=y
 CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_MTK=y
-CONFIG_TOUCHSCREEN_MTK_GT9157=y
+CONFIG_TOUCHSCREEN_GOODIX=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_UINPUT=y
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
 CONFIG_LEGACY_PTY_COUNT=16
 # CONFIG_DEVMEM is not set
-# CONFIG_DEVKMEM is not set
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_NR_UARTS=3
@@ -297,81 +211,59 @@
 CONFIG_HW_RANDOM=y
 CONFIG_I2C_CHARDEV=y
 CONFIG_I2C_MT65XX=y
-# CONFIG_I2C_MTK is not set
 CONFIG_SPI=y
+CONFIG_SPI_MT65XX=y
 # CONFIG_PINCTRL_MT8173 is not set
 CONFIG_GPIO_SYSFS=y
-CONFIG_POWER_EXT=y
-# CONFIG_HWMON is not set
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_HWMON=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_THERMAL=y
-CONFIG_THERMAL_DEFAULT_GOV_BACKWARD_COMPATIBLE=y
 CONFIG_WATCHDOG=y
 CONFIG_MEDIATEK_WATCHDOG=y
-# CONFIG_MTK_WATCHDOG is not set
-# CONFIG_MTK_WD_KICKER is not set
 CONFIG_MFD_MT6397=y
-CONFIG_MT6397_MISC=y
+CONFIG_MFD_SYSCON=y
 CONFIG_REGULATOR=y
 CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_MT6358=y
 CONFIG_REGULATOR_MT6392=y
 CONFIG_MEDIA_SUPPORT=y
-CONFIG_MEDIA_CEC_EDID=y
-CONFIG_MEDIA_CEC_SUPPORT=y
 CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_RC_SUPPORT=y
-# CONFIG_RC_MAP is not set
-CONFIG_LIRC=y
-# CONFIG_IR_LIRC_CODEC is not set
-# CONFIG_IR_NEC_DECODER is not set
-# CONFIG_IR_RC5_DECODER is not set
-# CONFIG_IR_RC6_DECODER is not set
-# CONFIG_IR_JVC_DECODER is not set
-# CONFIG_IR_SONY_DECODER is not set
-# CONFIG_IR_SANYO_DECODER is not set
-# CONFIG_IR_MCE_KBD_DECODER is not set
-CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_USB_VIDEO_CLASS=y
-CONFIG_V4L_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_MEDIATEK_CAPTURE=y
 CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEDIATEK_VCU_WO_FUSE=y
-CONFIG_VIDEO_MEDIATEK_MDP_VCU=y
-CONFIG_VB2_MEDIATEK_DMA_SG=y
-CONFIG_VIDEO_MEDIATEK_VCODEC=y
+CONFIG_VIDEO_MEDIATEK_MDP=y
 CONFIG_DRM=y
-CONFIG_DRM_PANEL_SIMPLE=y
+CONFIG_DRM_PANEL_RPI_PUMPKIN_TOUCHSCREEN=y
+CONFIG_DRM_PANEL_SHARP_NT35532=y
+CONFIG_DRM_PANEL_TPV_OTM1901A=y
+CONFIG_DRM_PANEL_TRULY_R63350A=y
 CONFIG_DRM_MEDIATEK=y
 CONFIG_DRM_MEDIATEK_HDMI=y
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_PANEL=y
-CONFIG_DRM_PANEL_TCL_TCHD5052=y
-CONFIG_GENERIC_PHY=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
-#CONFIG_DRM_HDMI_MAIN_PATH=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_PWM=y
 CONFIG_LOGO=y
 CONFIG_SOUND=y
 CONFIG_SND=y
-CONFIG_SND_SEQUENCER=y
-CONFIG_SND_SEQ_DUMMY=y
-CONFIG_SND_SEQUENCER_OSS=y
 CONFIG_SND_HRTIMER=y
 CONFIG_SND_DYNAMIC_MINORS=y
 CONFIG_SND_VERBOSE_PRINTK=y
 CONFIG_SND_DEBUG=y
 CONFIG_SND_DEBUG_VERBOSE=y
 CONFIG_SND_PCM_XRUN_DEBUG=y
+CONFIG_SND_SEQUENCER=y
+CONFIG_SND_SEQ_DUMMY=y
 # CONFIG_SND_SPI is not set
 CONFIG_SND_USB_AUDIO=y
 CONFIG_SND_SOC=y
-CONFIG_SND_SOC_MT8167S_SOM_MACH=y
-CONFIG_MTK_SPEAKER=y
-CONFIG_MTK_BTCVSD_ALSA=y
+CONFIG_SND_SOC_MT8183=y
+CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A=y
+CONFIG_SND_SOC_MT8183_DA7219_MAX98357A=y
+CONFIG_SND_SOC_MT8183_MT6358=y
+CONFIG_SND_SOC_MT8516_PUMPKIN_MACH=y
 CONFIG_SND_SIMPLE_CARD=y
-CONFIG_SOUND_PRIME=y
 CONFIG_HIDRAW=y
 CONFIG_UHID=y
 CONFIG_HID_A4TECH=y
@@ -412,41 +304,69 @@
 CONFIG_USB_STORAGE_ONETOUCH=y
 CONFIG_USB_STORAGE_KARMA=y
 CONFIG_USB_STORAGE_CYPRESS_ATACB=y
+CONFIG_USB_MTU3=y
+CONFIG_USB_MTU3_GADGET=y
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_GADGET=y
+CONFIG_USB_MUSB_MEDIATEK=y
+CONFIG_USB_INVENTRA_DMA=y
 CONFIG_USB_SERIAL=y
 CONFIG_USB_SERIAL_OPTION=y
-CONFIG_USB_TRANCEVIBRATOR=y
 CONFIG_NOP_USB_XCEIV=y
 CONFIG_USB_GADGET=y
-CONFIG_USB_G_ANDROID=y
+CONFIG_U_SERIAL_CONSOLE=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC1_LEGACY=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
 CONFIG_MMC=y
 CONFIG_MMC_BLOCK_MINORS=32
 CONFIG_MMC_MTK=y
-CONFIG_MMC_MTK_COMM_SDIO=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_LP5523=y
-CONFIG_LEDS_LP5521=y
-CONFIG_SWITCH=y
 CONFIG_RTC_CLASS=y
 # CONFIG_RTC_SYSTOHC is not set
-CONFIG_RTC_DRV_MT6397=y
 CONFIG_DMADEVICES=y
-CONFIG_DMA_MTK_UART=y
-CONFIG_STAGING=y
-CONFIG_ASHMEM=y
-CONFIG_ANDROID_LOW_MEMORY_KILLER=y
-CONFIG_SYNC=y
 CONFIG_SW_SYNC=y
-CONFIG_SW_SYNC_USER=y
-CONFIG_ION=y
-CONFIG_MTK_ION=y
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_MT8183_AUDIOSYS=y
+CONFIG_COMMON_CLK_MT8183_CAMSYS=y
+CONFIG_COMMON_CLK_MT8183_IMGSYS=y
+CONFIG_COMMON_CLK_MT8183_IPU_CORE0=y
+CONFIG_COMMON_CLK_MT8183_IPU_CORE1=y
+CONFIG_COMMON_CLK_MT8183_IPU_ADL=y
+CONFIG_COMMON_CLK_MT8183_IPU_CONN=y
+CONFIG_COMMON_CLK_MT8183_MFGCFG=y
+CONFIG_COMMON_CLK_MT8183_MMSYS=y
+CONFIG_COMMON_CLK_MT8183_VDECSYS=y
+CONFIG_COMMON_CLK_MT8183_VENCSYS=y
+CONFIG_COMMON_CLK_MT8516_AUDSYS=y
 CONFIG_MTK_IOMMU=y
+CONFIG_MTK_CMDQ=y
 CONFIG_MTK_PMIC_WRAP=y
-CONFIG_ANDROID=y
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_NVMEM=y
+CONFIG_IIO=m
+CONFIG_MEDIATEK_MT6577_AUXADC=m
+CONFIG_PWM=y
+CONFIG_PWM_MTK_DISP=y
+CONFIG_PWM_MEDIATEK=y
+CONFIG_PHY_MTK_TPHY=y
+CONFIG_PHY_MTK_XSPHY=y
 CONFIG_MTK_EFUSE=y
 CONFIG_EXT4_FS=y
 CONFIG_EXT4_FS_SECURITY=y
@@ -454,7 +374,6 @@
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_QFMT_V2=y
 CONFIG_FUSE_FS=y
-CONFIG_CUSE=y
 CONFIG_ISO9660_FS=y
 CONFIG_JOLIET=y
 CONFIG_ZISOFS=y
@@ -462,40 +381,29 @@
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
 CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_SDCARD_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
 # CONFIG_NETWORK_FILESYSTEMS is not set
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_CODEPAGE_950=y
 CONFIG_NLS_ASCII=y
 CONFIG_NLS_ISO8859_1=y
 CONFIG_NLS_UTF8=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_XCBC=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_TWOFISH=y
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC64=y
 CONFIG_PRINTK_TIME=y
 CONFIG_DEBUG_INFO=y
 CONFIG_FRAME_WARN=1400
 CONFIG_PANIC_ON_OOPS=y
 CONFIG_PANIC_TIMEOUT=5
 CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_BUGVERBOSE is not set
 CONFIG_RCU_CPU_STALL_TIMEOUT=60
 CONFIG_FAULT_INJECTION=y
 CONFIG_ENABLE_DEFAULT_TRACERS=y
-CONFIG_SECURITY=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_CRYPTO_ECHAINIV=y
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_XCBC=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_TWOFISH=y
-# CONFIG_CRYPTO_HW is not set
-CONFIG_ARM64_CRYPTO=y
-CONFIG_CRYPTO_SHA2_ARM64_CE=y
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
-CONFIG_LIBCRC32C=y
-CONFIG_MTD_VERITY=n
-CONFIG_MTK_MUSB_PORT0_WAKELOCK_FORCE_SUSPEND=y
-CONFIG_MTK_MUSB_PORT0_RESUME_CONNECT_USB=y
diff --git a/debian/kernel-fit-image.its b/debian/kernel-fit-image.its
new file mode 100644
index 0000000..ac09a98
--- /dev/null
+++ b/debian/kernel-fit-image.its
@@ -0,0 +1,47 @@
+/dts-v1/;
+
+/ {
+        description = "U-Boot fitImage for Linux 4.19.106 on Coral MT8516";
+        #address-cells = <1>;
+
+        images {
+                kernel@1 {
+                        description = "Linux kernel";
+                        data = /incbin/("../arch/arm64/boot/Image.gz");
+                        type = "kernel";
+                        arch = "arm64";
+                        os = "linux";
+                        compression = "gzip";
+                        load = <0x40080000>;
+                        entry = <0x40080000>;
+                        hash@1 {
+                                algo = "sha256";
+                        };
+                };
+                fdt@1 {
+                        description = "Flattened Device Tree blob";
+                        data = /incbin/("../arch/arm64/boot/dts/mediatek/mt8167-coral.dtb");
+                        type = "flat_dt";
+                        arch = "arm64";
+                        compression = "none";
+                        load = <0x42000000>;
+                        hash@1 {
+                                algo = "sha256";
+                        };
+                };
+        };
+
+        configurations {
+                default = "conf@1";
+                conf@1 {
+                        description = "Boot Linux kernel with FDT blob";
+                        kernel = "kernel@1";
+                        fdt = "fdt@1";
+                        signature@1 {
+                                algo = "sha256,rsa2048";
+                                key-name-hint="dev";
+                                sign-images="fdt","kernel";
+                        };
+                };
+        };
+};
diff --git a/debian/linux-headers-4.19.32-mtk.postinst b/debian/linux-headers-4.19.106-mtk.postinst
similarity index 93%
rename from debian/linux-headers-4.19.32-mtk.postinst
rename to debian/linux-headers-4.19.106-mtk.postinst
index e1754a6..d0bf5a7 100644
--- a/debian/linux-headers-4.19.32-mtk.postinst
+++ b/debian/linux-headers-4.19.106-mtk.postinst
@@ -5,7 +5,7 @@
 #         Debian linux-image postinst script.
 
 $|=1;
-my $version  = "4.19.32-mtk";
+my $version  = "4.19.106-mtk";
 
 if (-d "/etc/kernel/header_postinst.d") {
   system ("run-parts --report --exit-on-error --arg=$version " .
diff --git a/debian/linux-image-4.19.32-mtk.postinst b/debian/linux-image-4.19.106-mtk.postinst
similarity index 95%
rename from debian/linux-image-4.19.32-mtk.postinst
rename to debian/linux-image-4.19.106-mtk.postinst
index bb436fe..fa1aa47 100644
--- a/debian/linux-image-4.19.32-mtk.postinst
+++ b/debian/linux-image-4.19.106-mtk.postinst
@@ -1,6 +1,6 @@
 #!/bin/sh -e
 
-version=4.19.32-mtk
+version=4.19.106-mtk
 image_path=/boot/vmlinuz-$version
 
 if [ "$1" != configure ]; then
diff --git a/debian/linux-image-4.19.32-mtk.postrm b/debian/linux-image-4.19.106-mtk.postrm
similarity index 97%
rename from debian/linux-image-4.19.32-mtk.postrm
rename to debian/linux-image-4.19.106-mtk.postrm
index bb9ce18..41f8f6a 100644
--- a/debian/linux-image-4.19.32-mtk.postrm
+++ b/debian/linux-image-4.19.106-mtk.postrm
@@ -1,6 +1,6 @@
 #!/bin/sh -e
 
-version=4.19.32-mtk
+version=4.19.106-mtk
 image_path=/boot/vmlinuz-$version
 
 rm -f /lib/modules/$version/.fresh-install
diff --git a/debian/linux-image-4.19.32-mtk.preinst b/debian/linux-image-4.19.106-mtk.preinst
similarity index 95%
rename from debian/linux-image-4.19.32-mtk.preinst
rename to debian/linux-image-4.19.106-mtk.preinst
index 8035bec..4b01520 100644
--- a/debian/linux-image-4.19.32-mtk.preinst
+++ b/debian/linux-image-4.19.106-mtk.preinst
@@ -1,6 +1,6 @@
 #!/bin/sh -e
 
-version=4.19.32-mtk
+version=4.19.106-mtk
 image_path=/boot/vmlinuz-$version
 
 if [ "$1" = abort-upgrade ]; then
diff --git a/debian/linux-image-4.19.32-mtk.prerm b/debian/linux-image-4.19.106-mtk.prerm
similarity index 93%
rename from debian/linux-image-4.19.32-mtk.prerm
rename to debian/linux-image-4.19.106-mtk.prerm
index 868041b..a82eaeb 100644
--- a/debian/linux-image-4.19.32-mtk.prerm
+++ b/debian/linux-image-4.19.106-mtk.prerm
@@ -1,6 +1,6 @@
 #!/bin/sh -e
 
-version=4.19.32-mtk
+version=4.19.106-mtk
 image_path=/boot/vmlinuz-$version
 
 if [ "$1" != remove ]; then
diff --git a/debian/linux-image-4.19.32-mtk.install b/debian/linux-image-4.19.32-mtk.install
deleted file mode 100644
index dc766ec..0000000
--- a/debian/linux-image-4.19.32-mtk.install
+++ /dev/null
@@ -1 +0,0 @@
-debian/usr /
diff --git a/debian/rules b/debian/rules
index 3526a27..71c7eea 100755
--- a/debian/rules
+++ b/debian/rules
@@ -4,7 +4,7 @@
 # Uncomment this to turn on verbose mode.
 export DH_VERBOSE = 1
 
-VERSION := 4.19.32-mtk
+VERSION := 4.19.106-mtk
 
 ARCH := arm64
 CROSS_COMPILE := aarch64-linux-gnu-
@@ -21,21 +21,17 @@
 DESTDIR_KBUILD := $(CURDIR)/debian/linux-kbuild-$(VERSION)
 
 %:
-	dh $@ --with=systemd
+	dh $@
 
 override_dh_auto_clean:
 	true
 
 override_dh_auto_build:
-	+make $(KERNEL_OPTIONS) mt8167s_excelsior_defconfig
+	cp debian/defconfig .config
 	+make $(KERNEL_OPTIONS) olddefconfig
-	+make $(KERNEL_OPTIONS) -j$(shell nproc) Image modules dtbs
-	$(CROSS_COMPILE)objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
+	+make $(KERNEL_OPTIONS) -j$(shell nproc) Image.gz modules dtbs
 
-	/boot/compress_lz4.sh linux.bin
-
-	cp /boot/kernel-fit-image.its .
-	mtk-mkimage -D "-I dts -O dtb -p 1024" -k /boot/keys -f kernel-fit-image.its boot.img
+	/usr/bin/mkimage -D "-I dts -O dtb -p 1024" -f debian/kernel-fit-image.its boot.img
 
 override_dh_auto_install:
 	+make $(KERNEL_OPTIONS) INSTALL_MOD_PATH=$(DESTDIR) modules_install
@@ -82,9 +78,3 @@
 	install -d $(DESTDIR_HEADERS)/lib/modules/$(VERSION)
 	ln -s /usr/src/linux-headers-$(VERSION) $(DESTDIR_HEADERS)/lib/modules/$(VERSION)/build
 	ln -s /usr/lib/linux-kbuild-$(VERSION)/scripts $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/scripts
-
-override_dh_systemd_enable:
-	dh_systemd_enable --name=linux-mtk
-
-override_dh_systemd_start:
-	dh_systemd_start --restart-after-upgrade linux-mtk
diff --git a/debian/rules.d/Makefile b/debian/rules.d/Makefile
new file mode 100644
index 0000000..c7506d3
--- /dev/null
+++ b/debian/rules.d/Makefile
@@ -0,0 +1,17 @@
+DATA = \
+	Kbuild \
+	Makefile \
+
+SUBDIRS = \
+	scripts \
+	tools
+
+include $(top_rulesdir)/Makefile.inc
+
+# Build userland headers first
+unexport VERSION
+all-local:
+	mkdir -p headers-tools
+	$(MAKE) -C $(top_srcdir) ARCH=$(KERNEL_ARCH) O=$(CURDIR)/headers-tools \
+		INSTALL_HDR_PATH=$(CURDIR) headers_install
+all-recursive: all-local
diff --git a/debian/rules.d/tools/hv/Makefile b/debian/rules.d/tools/hv/Makefile
new file mode 100644
index 0000000..8c56367
--- /dev/null
+++ b/debian/rules.d/tools/hv/Makefile
@@ -0,0 +1,17 @@
+ifeq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
+
+# Build nothing
+include $(top_rulesdir)/Makefile.inc
+
+else
+
+PROGS = \
+	hv_fcopy_daemon \
+	hv_kvp_daemon \
+	hv_vss_daemon
+
+installdir = /usr/sbin
+
+include $(top_rulesdir)/Makefile.inc
+
+endif
diff --git a/debian/rules.d/tools/lib/bpf/Makefile b/debian/rules.d/tools/lib/bpf/Makefile
new file mode 100644
index 0000000..bc45404
--- /dev/null
+++ b/debian/rules.d/tools/lib/bpf/Makefile
@@ -0,0 +1,17 @@
+include $(top_rulesdir)/Makefile.inc
+
+DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+# Catch use of missing kernel APIs early
+CFLAGS += -Werror=implicit-function-declaration
+
+MAKE_BPF := +$(MAKE) -C $(top_srcdir)/$(OUTDIR) O=$(CURDIR)
+MAKE_BPF += prefix=/usr
+MAKE_BPF += libdir_relative=lib/$(DEB_HOST_MULTIARCH)
+MAKE_BPF += V=$(KBUILD_VERBOSE)
+
+all:
+	$(MAKE_BPF)
+
+install:
+	$(MAKE_BPF) install install_headers
diff --git a/debian/rules.d/tools/lib/lockdep/Makefile b/debian/rules.d/tools/lib/lockdep/Makefile
new file mode 100644
index 0000000..9b66ecb
--- /dev/null
+++ b/debian/rules.d/tools/lib/lockdep/Makefile
@@ -0,0 +1,23 @@
+include $(top_rulesdir)/Makefile.inc
+
+DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+
+# Catch use of missing kernel APIs early
+CFLAGS += -Werror=implicit-function-declaration
+
+MAKE_LOCKDEP := +$(MAKE) -C $(top_srcdir)/$(OUTDIR) O=$(CURDIR) V=1 \
+	prefix=/usr libdir_relative=lib/$(DEB_HOST_MULTIARCH) \
+	LIBLOCKDEP_VERSION=$(VERSION) \
+	CONFIG_FLAGS='$(CFLAGS) $(filter -D%,$(CPPFLAGS))' LDFLAGS='$(LDFLAGS)'
+
+unexport CFLAGS
+
+all:
+	$(MAKE_LOCKDEP)
+
+install:
+	$(MAKE_LOCKDEP) install
+	mkdir -p $(DESTDIR)/usr/include
+	cp -R $(top_srcdir)/$(OUTDIR)/include/liblockdep $(DESTDIR)/usr/include/
+	ln -sf liblockdep.so.$(VERSION) \
+		$(DESTDIR)/usr/lib/$(DEB_HOST_MULTIARCH)/liblockdep.so
diff --git a/debian/rules.d/tools/lib/lockdep/lockdep.in b/debian/rules.d/tools/lib/lockdep/lockdep.in
new file mode 100644
index 0000000..4a0d03a
--- /dev/null
+++ b/debian/rules.d/tools/lib/lockdep/lockdep.in
@@ -0,0 +1,2 @@
+#!/bin/sh
+LD_PRELOAD="liblockdep.so.@VERSION@ $LD_PRELOAD" exec "$@"
diff --git a/debian/rules.d/tools/objtool/Makefile b/debian/rules.d/tools/objtool/Makefile
new file mode 100644
index 0000000..9990cde
--- /dev/null
+++ b/debian/rules.d/tools/objtool/Makefile
@@ -0,0 +1,11 @@
+include $(top_rulesdir)/Makefile.inc
+
+all:
+# For now, only supported target architecture is x86.  Later we'll need to build
+# for multiple targets and add a wrapper, same as for modpost.
+# objtool explicitly sets CC and LD to be native tools; we need to override
+# this on the command line to make cross-builds work.
+	$(MAKE) -C $(top_srcdir)/tools/objtool O=$(CURDIR) HOSTARCH=$(KERNEL_ARCH) ARCH=x86 CC=$(CC) LD=$(CROSS_COMPILE)ld V=$(KBUILD_VERBOSE)
+
+install:
+	install -D -m755 objtool $(DESTDIR)/$(installdir)/objtool
diff --git a/debian/rules.d/tools/perf/Makefile b/debian/rules.d/tools/perf/Makefile
new file mode 100644
index 0000000..3c397c7
--- /dev/null
+++ b/debian/rules.d/tools/perf/Makefile
@@ -0,0 +1,62 @@
+include $(top_rulesdir)/Makefile.inc
+
+MAKE_PERF := $(MAKE) O=$(CURDIR) prefix=/usr V=1 VF=1 ARCH=$(KERNEL_ARCH) WERROR=0 EXTRA_CFLAGS='$(CFLAGS) $(CPPFLAGS)' LDFLAGS='$(LDFLAGS)'
+
+# Disable Gtk UI until it's more usable
+MAKE_PERF += NO_GTK2=1
+
+# Do not build the unversioned jvmti library
+MAKE_PERF += feature-jvmti=0
+
+# Include version in all directory names
+MAKE_PERF += perfexecdir=lib/perf_$(VERSION)-core plugindir=/usr/lib/traceevent_$(VERSION)/plugins STRACE_GROUPS_DIR=share/perf_$(VERSION)-core/strace/groups tipdir=share/doc/linux-perf-$(VERSION) perf_include_dir=include/perf_$(VERSION) perf_examples_dir=share/doc/linux-perf-$(VERSION)/examples
+
+# perf can link against libbfd if available, but the result is
+# undistributable as they are licenced under GPL v2 and v3+
+# respectively.  Override detection of libbfd and insist that
+# cplus_demangle() can be found in libiberty (LGPL v2.1+).
+MAKE_PERF += feature-libbfd=0 feature-libbfd-liberty=0 feature-libbfd-liberty-z=0 HAVE_CPLUS_DEMANGLE_SUPPORT=1
+
+# perf can link against libcrypto if available, but the result is
+# undistributable as GPL v2 and OpenSSL are not compatible without
+# an explicit exception.  Override detection of libcrypto.
+MAKE_PERF += NO_LIBCRYPTO=1
+
+# Currently babeltrace support for `perf data' is not automatically detected.
+MAKE_PERF += LIBBABELTRACE=1
+
+# Build with asciidoctor, not asciidoc
+MAKE_PERF += USE_ASCIIDOCTOR=1
+
+# Build with Python 3, not Python 2
+MAKE_PERF += PYTHON=/usr/bin/python3
+
+all:
+# perf changes some default directories depending on whether DESTDIR is
+# set.  We must define it even when building to avoid a rebuild when we
+# run 'make install'.
+	+$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf all VERSION=$(VERSION) DESTDIR=dummy
+ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+	+$(MAKE_PERF) -C $(top_srcdir)/tools/perf/Documentation man VERSION=$(VERSION)
+endif
+# Check that perf didn't get linked against libbfd or libcrypto
+	type ldd
+	! ldd $(CURDIR)/perf | grep -E '\blib(bfd|crypto)'
+# Check that it includes cplus_demangle from libiberty
+	grep cplus_demangle $(CURDIR)/perf
+
+install:
+	+$(MAKE_PERF) -C $(top_srcdir)/tools/perf -f Makefile.perf install VERSION=$(VERSION)
+# Don't install a 'trace' alias yet:
+# - We need a wrapper for it anyway, so there's little point adding a
+#   versioned link
+# - It doesn't work out-of-the-box as non-root (it depends on debugfs),
+#   so it's less widely useful than strace
+# - 'perf trace' doesn't take much more typing
+	rm -f $(DESTDIR)/usr/bin/trace_$(VERSION)
+	mkdir -p $(DESTDIR)/usr/share/bash-completion/
+	mv $(DESTDIR)/etc/bash_completion.d \
+		$(DESTDIR)/usr/share/bash-completion/completions
+	rmdir --ignore-fail-on-non-empty $(DESTDIR)/etc
+# Check for unversioned files that are likely to result in file conflicts
+	cd $(DESTDIR) && ! find \! -type d \! -path '*[_-]$(VERSION)*' | grep .
diff --git a/debian/rules.d/tools/power/cpupower/Makefile b/debian/rules.d/tools/power/cpupower/Makefile
new file mode 100644
index 0000000..c43bd62
--- /dev/null
+++ b/debian/rules.d/tools/power/cpupower/Makefile
@@ -0,0 +1,26 @@
+include $(top_rulesdir)/Makefile.inc
+
+MAKE_CPUPOWER := $(shell dpkg-buildflags --export=cmdline) $(MAKE) O=$(CURDIR) CPUFREQ_BENCH=false V=true mandir=/usr/share/man
+
+MAKE_CPUPOWER += DEBUG=$(if $(filter noopt,$(DEB_BUILD_OPTIONS)),true,)
+
+# Don't strip binaries here; let dh_strip determine what to do
+MAKE_CPUPOWER += STRIP=true
+
+MAKE_CPUPOWER += CROSS='$(CROSS_COMPILE)'
+
+MAKE_CPUPOWER += PACKAGE_BUGREPORT='Debian\ \(reportbug\ linux-cpupower\)'
+
+MAKE_CPUPOWER += libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
+
+all:
+	+$(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower
+
+install:
+	+$(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower install DESTDIR=$(DESTDIR)
+ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+	rm -rf $(DESTDIR)/usr/share/man
+endif
+
+clean:
+	+$(MAKE_CPUPOWER) -C $(top_srcdir)/tools/power/cpupower clean
diff --git a/debian/rules.d/tools/power/x86/Makefile b/debian/rules.d/tools/power/x86/Makefile
new file mode 100644
index 0000000..2b9d773
--- /dev/null
+++ b/debian/rules.d/tools/power/x86/Makefile
@@ -0,0 +1,5 @@
+SUBDIRS = \
+	turbostat \
+	x86_energy_perf_policy
+
+include $(top_rulesdir)/Makefile.inc
diff --git a/debian/rules.d/tools/power/x86/turbostat/Makefile b/debian/rules.d/tools/power/x86/turbostat/Makefile
new file mode 100644
index 0000000..4c4ed2c
--- /dev/null
+++ b/debian/rules.d/tools/power/x86/turbostat/Makefile
@@ -0,0 +1,7 @@
+PROGS = turbostat
+
+installdir = /usr/sbin
+
+include $(top_rulesdir)/Makefile.inc
+
+CPPFLAGS += -I"$(top_srcdir)/tools/include" -DMSRHEADER='"$(top_srcdir)/arch/x86/include/asm/msr-index.h"' -DINTEL_FAMILY_HEADER='"$(top_srcdir)/arch/x86/include/asm/intel-family.h"'
diff --git a/debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile b/debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile
new file mode 100644
index 0000000..b9ec56c
--- /dev/null
+++ b/debian/rules.d/tools/power/x86/x86_energy_perf_policy/Makefile
@@ -0,0 +1,7 @@
+PROGS = x86_energy_perf_policy
+
+installdir = /usr/sbin
+
+include $(top_rulesdir)/Makefile.inc
+
+CPPFLAGS += -I"$(top_srcdir)/tools/include" -DMSRHEADER='"$(top_srcdir)/arch/x86/include/asm/msr-index.h"'
diff --git a/debian/rules.d/tools/usb/usbip/Makefile b/debian/rules.d/tools/usb/usbip/Makefile
new file mode 100644
index 0000000..3decaac
--- /dev/null
+++ b/debian/rules.d/tools/usb/usbip/Makefile
@@ -0,0 +1,31 @@
+srcdir := $(top_srcdir)/tools/usb/usbip
+
+# Make sure we don't override top_srcdir in the sub-make.  'unexport
+# top_srcdir' is *not* sufficient; nor is adding 'MAKEFLAGS=' to the
+# sub-make command line.
+unexport MAKEFLAGS
+
+all: export CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
+all: export CPPFLAGS := $(shell dpkg-buildflags --get CFLAGS) \
+	-isystem $(top_srcdir)/debian/build/build-tools/include
+all: export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+all:
+	rsync -a $(srcdir)/ .
+	./autogen.sh
+	./configure \
+		--prefix=/usr \
+		--with-tcp-wrappers \
+		--with-usbids-dir=/usr/share/misc \
+		--disable-shared \
+		--disable-static \
+		--host=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+	$(MAKE) V=$(KBUILD_VERBOSE)
+
+install:
+	$(MAKE) V=$(KBUILD_VERBOSE) install
+ifneq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
+	rm -rf $(DESTDIR)/usr/share/man
+endif
+
+clean:
+	rm -rf *
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/usr/bin/install-linux-mtk.sh b/debian/usr/bin/install-linux-mtk.sh
deleted file mode 100755
index 857fef3..0000000
--- a/debian/usr/bin/install-linux-mtk.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-BOOT_PART=mmcblk0p2
-
-BOOT_PACKAGE=/boot/boot.img
-BOOT_PACKAGE_SIZE=$(stat -c%s ${BOOT_PACKAGE})
-
-function check_emmc_matches {
-  local BOOT_CURRENT=$(mktemp)
-  dd if=/dev/${BOOT_PART} of=${BOOT_CURRENT} \
-    count=${BOOT_PACKAGE_SIZE} \
-    bs=512 \
-    iflag=count_bytes
-  diff ${BOOT_CURRENT} ${BOOT_PACKAGE}
-  local DIFF_RETURN_CODE=$?
-  rm ${BOOT_CURRENT}
-  return ${DIFF_RETURN_CODE}
-}
-
-# Check if the image on eMMC is the same as from the package
-check_emmc_matches
-
-if [[ $? -eq 0 ]]; then
-  exit 0
-fi
-
-UPDATE_SUCCESS=false
-# Write the boot image into the block device
-for i in `seq 1 5`
-do
-  dd if=${BOOT_PACKAGE} of=/dev/${BOOT_PART} bs=512
-  check_emmc_matches
-  if [[ $? -eq 0 ]]; then
-    UPDATE_SUCCESS=true
-    break
-  fi
-done
-
-if [[ "${UPDATE_SUCCESS}" != true ]]; then
-  echo "Failed to update Linux! Rebooting is unsafe!"
-  exit 1
-fi