summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Nelson <eric.nelson@boundarydevices.com>2012-12-23 10:03:08 -0700
committerOtavio Salvador <otavio@ossystems.com.br>2012-12-25 16:18:21 -0200
commit1773d47f386fa1da10c8f5d9139085f6d097f4ba (patch)
tree4887c9620e6ea8e2f9e186ef6ff51b44fc1277a4
parentfc7721ccc29dcfe4b4fce1c82ee6e64ea8f50251 (diff)
downloadmeta-fsl-arm-1773d47f386fa1da10c8f5d9139085f6d097f4ba.tar.gz
linux-imx (3.0.35): Synchronize Boundary Devices changes
Synchronize with branch boundary-L3.0.35_12.09.01_GA on GitHub: http://github.com/boundarydevices/linux-imx6/ The defconfig matches nitrogen6x_defconfig with two minor changes to match Yocto userspace: - Add devtmpfs - GPU_VIV statically linked into kernel This update includes a number of ethernet performance improvements as discussed in this blog post: http://boundarydevices.com/i-mx6-ethernet/ It also includes proper camera definitions in defconfig to allow camera input from the OV5642 camera module and an update to the SGTL5000 microphone ALSA controls as discussed in this post: http://boundarydevices.com/imx6-sgtl5000-microphone/ Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
-rw-r--r--recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig7
-rw-r--r--recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch614
2 files changed, 545 insertions, 76 deletions
diff --git a/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig
index 1c8d6f3..4941948 100644
--- a/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig
+++ b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/defconfig
@@ -86,9 +86,9 @@ CONFIG_CFG80211=y
86CONFIG_MAC80211=y 86CONFIG_MAC80211=y
87CONFIG_RFKILL=y 87CONFIG_RFKILL=y
88CONFIG_RFKILL_INPUT=y 88CONFIG_RFKILL_INPUT=y
89CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
89CONFIG_DEVTMPFS=y 90CONFIG_DEVTMPFS=y
90CONFIG_DEVTMPFS_MOUNT=y 91CONFIG_DEVTMPFS_MOUNT=y
91CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
92CONFIG_CONNECTOR=y 92CONFIG_CONNECTOR=y
93CONFIG_MTD=y 93CONFIG_MTD=y
94CONFIG_MTD_CMDLINE_PARTS=y 94CONFIG_MTD_CMDLINE_PARTS=y
@@ -110,6 +110,7 @@ CONFIG_TUN=y
110CONFIG_MII=y 110CONFIG_MII=y
111CONFIG_MICREL_PHY=y 111CONFIG_MICREL_PHY=y
112CONFIG_NET_ETHERNET=y 112CONFIG_NET_ETHERNET=y
113CONFIG_FEC_NAPI=y
113# CONFIG_NETDEV_1000 is not set 114# CONFIG_NETDEV_1000 is not set
114# CONFIG_NETDEV_10000 is not set 115# CONFIG_NETDEV_10000 is not set
115CONFIG_HOSTAP=y 116CONFIG_HOSTAP=y
@@ -157,11 +158,7 @@ CONFIG_VIDEO_DEV=y
157# CONFIG_RC_CORE is not set 158# CONFIG_RC_CORE is not set
158# CONFIG_MEDIA_TUNER_CUSTOMISE is not set 159# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
159CONFIG_VIDEO_MXC_CAMERA=m 160CONFIG_VIDEO_MXC_CAMERA=m
160CONFIG_MXC_CAMERA_OV3640=m
161CONFIG_MXC_CAMERA_OV5640=m
162CONFIG_MXC_CAMERA_OV8820_MIPI=m
163CONFIG_MXC_CAMERA_OV5642=m 161CONFIG_MXC_CAMERA_OV5642=m
164CONFIG_MXC_CAMERA_OV5640_MIPI=m
165CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m 162CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
166CONFIG_USB_VIDEO_CLASS=m 163CONFIG_USB_VIDEO_CLASS=m
167# CONFIG_RADIO_ADAPTERS is not set 164# CONFIG_RADIO_ADAPTERS is not set
diff --git a/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch
index 5f22380..d0b6b0a 100644
--- a/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch
+++ b/recipes-kernel/linux/linux-imx-3.0.35/imx6qsabrelite/sync-boundary-changes.patch
@@ -9,10 +9,10 @@ old mode 100755
9new mode 100644 9new mode 100644
10diff --git a/arch/arm/configs/nitrogen6x_defconfig b/arch/arm/configs/nitrogen6x_defconfig 10diff --git a/arch/arm/configs/nitrogen6x_defconfig b/arch/arm/configs/nitrogen6x_defconfig
11new file mode 100644 11new file mode 100644
12index 0000000..35e4cc3 12index 0000000..dfb067c
13--- /dev/null 13--- /dev/null
14+++ b/arch/arm/configs/nitrogen6x_defconfig 14+++ b/arch/arm/configs/nitrogen6x_defconfig
15@@ -0,0 +1,3020 @@ 15@@ -0,0 +1,3092 @@
16+# 16+#
17+# Automatically generated make config: don't edit 17+# Automatically generated make config: don't edit
18+# Linux/arm 3.0.35 Kernel Configuration 18+# Linux/arm 3.0.35 Kernel Configuration
@@ -134,6 +134,7 @@ index 0000000..35e4cc3
134+CONFIG_PERF_EVENTS=y 134+CONFIG_PERF_EVENTS=y
135+# CONFIG_PERF_COUNTERS is not set 135+# CONFIG_PERF_COUNTERS is not set
136+CONFIG_VM_EVENT_COUNTERS=y 136+CONFIG_VM_EVENT_COUNTERS=y
137+CONFIG_PCI_QUIRKS=y
137+CONFIG_SLUB_DEBUG=y 138+CONFIG_SLUB_DEBUG=y
138+CONFIG_COMPAT_BRK=y 139+CONFIG_COMPAT_BRK=y
139+# CONFIG_SLAB is not set 140+# CONFIG_SLAB is not set
@@ -302,7 +303,6 @@ index 0000000..35e4cc3
302+CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y 303+CONFIG_IMX_HAVE_PLATFORM_FSL_USB_WAKEUP=y
303+CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y 304+CONFIG_IMX_HAVE_PLATFORM_IMX_PM=y
304+CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y 305+CONFIG_IMX_HAVE_PLATFORM_IMX_ASRC=y
305+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_DSI=y
306+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y 306+CONFIG_IMX_HAVE_PLATFORM_IMX_MIPI_CSI2=y
307+CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y 307+CONFIG_IMX_HAVE_PLATFORM_IMX_VDOA=y
308+CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y 308+CONFIG_IMX_HAVE_PLATFORM_IMX_PCIE=y
@@ -322,6 +322,7 @@ index 0000000..35e4cc3
322+CONFIG_SOC_IMX6Q=y 322+CONFIG_SOC_IMX6Q=y
323+# CONFIG_MACH_MX6Q_ARM2 is not set 323+# CONFIG_MACH_MX6Q_ARM2 is not set
324+# CONFIG_MACH_MX6SL_ARM2 is not set 324+# CONFIG_MACH_MX6SL_ARM2 is not set
325+# CONFIG_MACH_MX6SL_EVK is not set
325+CONFIG_MACH_MX6Q_SABRELITE=y 326+CONFIG_MACH_MX6Q_SABRELITE=y
326+# CONFIG_MACH_MX6Q_SABRESD is not set 327+# CONFIG_MACH_MX6Q_SABRESD is not set
327+# CONFIG_MACH_MX6Q_SABREAUTO is not set 328+# CONFIG_MACH_MX6Q_SABREAUTO is not set
@@ -629,6 +630,7 @@ index 0000000..35e4cc3
629+# CONFIG_CAN_MCP251X is not set 630+# CONFIG_CAN_MCP251X is not set
630+CONFIG_HAVE_CAN_FLEXCAN=y 631+CONFIG_HAVE_CAN_FLEXCAN=y
631+CONFIG_CAN_FLEXCAN=y 632+CONFIG_CAN_FLEXCAN=y
633+# CONFIG_PCH_CAN is not set
632+# CONFIG_CAN_SJA1000 is not set 634+# CONFIG_CAN_SJA1000 is not set
633+# CONFIG_CAN_C_CAN is not set 635+# CONFIG_CAN_C_CAN is not set
634+ 636+
@@ -665,9 +667,7 @@ index 0000000..35e4cc3
665+# CONFIG_BT_HCIBFUSB is not set 667+# CONFIG_BT_HCIBFUSB is not set
666+# CONFIG_BT_HCIVHCI is not set 668+# CONFIG_BT_HCIVHCI is not set
667+# CONFIG_BT_MRVL is not set 669+# CONFIG_BT_MRVL is not set
668+# CONFIG_BT_ATH3K is not set
669+# CONFIG_AF_RXRPC is not set 670+# CONFIG_AF_RXRPC is not set
670+CONFIG_FIB_RULES=y
671+CONFIG_WIRELESS=y 671+CONFIG_WIRELESS=y
672+CONFIG_WIRELESS_EXT=y 672+CONFIG_WIRELESS_EXT=y
673+CONFIG_WEXT_CORE=y 673+CONFIG_WEXT_CORE=y
@@ -688,7 +688,6 @@ index 0000000..35e4cc3
688+CONFIG_LIB80211_CRYPT_CCMP=y 688+CONFIG_LIB80211_CRYPT_CCMP=y
689+CONFIG_LIB80211_CRYPT_TKIP=y 689+CONFIG_LIB80211_CRYPT_TKIP=y
690+# CONFIG_LIB80211_DEBUG is not set 690+# CONFIG_LIB80211_DEBUG is not set
691+# CONFIG_CFG80211_ALLOW_RECONNECT is not set
692+CONFIG_MAC80211=y 691+CONFIG_MAC80211=y
693+CONFIG_MAC80211_HAS_RC=y 692+CONFIG_MAC80211_HAS_RC=y
694+# CONFIG_MAC80211_RC_PID is not set 693+# CONFIG_MAC80211_RC_PID is not set
@@ -773,11 +772,13 @@ index 0000000..35e4cc3
773+# Mapping drivers for chip access 772+# Mapping drivers for chip access
774+# 773+#
775+# CONFIG_MTD_COMPLEX_MAPPINGS is not set 774+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
775+# CONFIG_MTD_INTEL_VR_NOR is not set
776+# CONFIG_MTD_PLATRAM is not set 776+# CONFIG_MTD_PLATRAM is not set
777+ 777+
778+# 778+#
779+# Self-contained MTD device drivers 779+# Self-contained MTD device drivers
780+# 780+#
781+# CONFIG_MTD_PMC551 is not set
781+# CONFIG_MTD_DATAFLASH is not set 782+# CONFIG_MTD_DATAFLASH is not set
782+CONFIG_MTD_M25P80=y 783+CONFIG_MTD_M25P80=y
783+CONFIG_M25PXX_USE_FAST_READ=y 784+CONFIG_M25PXX_USE_FAST_READ=y
@@ -800,9 +801,12 @@ index 0000000..35e4cc3
800+# CONFIG_MTD_NAND_ECC_BCH is not set 801+# CONFIG_MTD_NAND_ECC_BCH is not set
801+# CONFIG_MTD_SM_COMMON is not set 802+# CONFIG_MTD_SM_COMMON is not set
802+# CONFIG_MTD_NAND_MUSEUM_IDS is not set 803+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
804+# CONFIG_MTD_NAND_DENALI is not set
803+# CONFIG_MTD_NAND_GPIO is not set 805+# CONFIG_MTD_NAND_GPIO is not set
804+CONFIG_MTD_NAND_IDS=y 806+CONFIG_MTD_NAND_IDS=y
807+# CONFIG_MTD_NAND_RICOH is not set
805+# CONFIG_MTD_NAND_DISKONCHIP is not set 808+# CONFIG_MTD_NAND_DISKONCHIP is not set
809+# CONFIG_MTD_NAND_CAFE is not set
806+# CONFIG_MTD_NAND_NANDSIM is not set 810+# CONFIG_MTD_NAND_NANDSIM is not set
807+# CONFIG_MTD_NAND_GPMI_NAND is not set 811+# CONFIG_MTD_NAND_GPMI_NAND is not set
808+# CONFIG_MTD_NAND_PLATFORM is not set 812+# CONFIG_MTD_NAND_PLATFORM is not set
@@ -820,11 +824,16 @@ index 0000000..35e4cc3
820+# CONFIG_MTD_UBI_DEBUG is not set 824+# CONFIG_MTD_UBI_DEBUG is not set
821+# CONFIG_PARPORT is not set 825+# CONFIG_PARPORT is not set
822+CONFIG_BLK_DEV=y 826+CONFIG_BLK_DEV=y
827+# CONFIG_BLK_CPQ_DA is not set
828+# CONFIG_BLK_CPQ_CISS_DA is not set
829+# CONFIG_BLK_DEV_DAC960 is not set
830+# CONFIG_BLK_DEV_UMEM is not set
823+# CONFIG_BLK_DEV_COW_COMMON is not set 831+# CONFIG_BLK_DEV_COW_COMMON is not set
824+CONFIG_BLK_DEV_LOOP=y 832+CONFIG_BLK_DEV_LOOP=y
825+# CONFIG_BLK_DEV_CRYPTOLOOP is not set 833+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
826+# CONFIG_BLK_DEV_DRBD is not set 834+# CONFIG_BLK_DEV_DRBD is not set
827+# CONFIG_BLK_DEV_NBD is not set 835+# CONFIG_BLK_DEV_NBD is not set
836+# CONFIG_BLK_DEV_SX8 is not set
828+# CONFIG_BLK_DEV_UB is not set 837+# CONFIG_BLK_DEV_UB is not set
829+# CONFIG_BLK_DEV_RAM is not set 838+# CONFIG_BLK_DEV_RAM is not set
830+# CONFIG_CDROM_PKTCDVD is not set 839+# CONFIG_CDROM_PKTCDVD is not set
@@ -849,14 +858,11 @@ index 0000000..35e4cc3
849+# CONFIG_SENSORS_BH1770 is not set 858+# CONFIG_SENSORS_BH1770 is not set
850+# CONFIG_SENSORS_APDS990X is not set 859+# CONFIG_SENSORS_APDS990X is not set
851+# CONFIG_HMC6352 is not set 860+# CONFIG_HMC6352 is not set
852+# CONFIG_SENSORS_AK8975 is not set
853+# CONFIG_DS1682 is not set 861+# CONFIG_DS1682 is not set
854+# CONFIG_TI_DAC7512 is not set 862+# CONFIG_TI_DAC7512 is not set
855+# CONFIG_BMP085 is not set 863+# CONFIG_BMP085 is not set
856+# CONFIG_PCH_PHUB is not set 864+# CONFIG_PCH_PHUB is not set
857+CONFIG_MXS_PERFMON=m 865+CONFIG_MXS_PERFMON=m
858+# CONFIG_WL127X_RFKILL is not set
859+# CONFIG_APANIC is not set
860+# CONFIG_C2PORT is not set 866+# CONFIG_C2PORT is not set
861+ 867+
862+# 868+#
@@ -1128,7 +1134,7 @@ index 0000000..35e4cc3
1128+# CONFIG_KS8851 is not set 1134+# CONFIG_KS8851 is not set
1129+# CONFIG_KS8851_MLL is not set 1135+# CONFIG_KS8851_MLL is not set
1130+CONFIG_FEC=y 1136+CONFIG_FEC=y
1131+# CONFIG_FEC_NAPI is not set 1137+CONFIG_FEC_NAPI=y
1132+# CONFIG_FEC_1588 is not set 1138+# CONFIG_FEC_1588 is not set
1133+# CONFIG_ATL2 is not set 1139+# CONFIG_ATL2 is not set
1134+# CONFIG_FTMAC100 is not set 1140+# CONFIG_FTMAC100 is not set
@@ -1147,12 +1153,9 @@ index 0000000..35e4cc3
1147+# CONFIG_ADM8211 is not set 1153+# CONFIG_ADM8211 is not set
1148+# CONFIG_MAC80211_HWSIM is not set 1154+# CONFIG_MAC80211_HWSIM is not set
1149+# CONFIG_MWL8K is not set 1155+# CONFIG_MWL8K is not set
1150+# CONFIG_WIFI_CONTROL_FUNC is not set
1151+# CONFIG_ATH_COMMON is not set 1156+# CONFIG_ATH_COMMON is not set
1152+# CONFIG_B43 is not set 1157+# CONFIG_B43 is not set
1153+# CONFIG_B43LEGACY is not set 1158+# CONFIG_B43LEGACY is not set
1154+# CONFIG_BCM4329 is not set
1155+# CONFIG_BCMDHD is not set
1156+CONFIG_HOSTAP=y 1159+CONFIG_HOSTAP=y
1157+# CONFIG_HOSTAP_FIRMWARE is not set 1160+# CONFIG_HOSTAP_FIRMWARE is not set
1158+# CONFIG_HOSTAP_PLX is not set 1161+# CONFIG_HOSTAP_PLX is not set
@@ -1200,11 +1203,15 @@ index 0000000..35e4cc3
1200+# 1203+#
1201+# CAIF transport drivers 1204+# CAIF transport drivers
1202+# 1205+#
1206+# CONFIG_FDDI is not set
1207+# CONFIG_HIPPI is not set
1203+# CONFIG_PPP is not set 1208+# CONFIG_PPP is not set
1204+# CONFIG_SLIP is not set 1209+# CONFIG_SLIP is not set
1210+# CONFIG_NET_FC is not set
1205+# CONFIG_NETCONSOLE is not set 1211+# CONFIG_NETCONSOLE is not set
1206+# CONFIG_NETPOLL is not set 1212+# CONFIG_NETPOLL is not set
1207+# CONFIG_NET_POLL_CONTROLLER is not set 1213+# CONFIG_NET_POLL_CONTROLLER is not set
1214+# CONFIG_VMXNET3 is not set
1208+# CONFIG_ISDN is not set 1215+# CONFIG_ISDN is not set
1209+# CONFIG_PHONE is not set 1216+# CONFIG_PHONE is not set
1210+ 1217+
@@ -1267,6 +1274,7 @@ index 0000000..35e4cc3
1267+# CONFIG_TOUCHSCREEN_EETI is not set 1274+# CONFIG_TOUCHSCREEN_EETI is not set
1268+CONFIG_TOUCHSCREEN_EGALAX=y 1275+CONFIG_TOUCHSCREEN_EGALAX=y
1269+# CONFIG_TOUCHSCREEN_ELAN is not set 1276+# CONFIG_TOUCHSCREEN_ELAN is not set
1277+# CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH is not set
1270+# CONFIG_TOUCHSCREEN_FUJITSU is not set 1278+# CONFIG_TOUCHSCREEN_FUJITSU is not set
1271+# CONFIG_TOUCHSCREEN_GUNZE is not set 1279+# CONFIG_TOUCHSCREEN_GUNZE is not set
1272+# CONFIG_TOUCHSCREEN_ELO is not set 1280+# CONFIG_TOUCHSCREEN_ELO is not set
@@ -1279,7 +1287,6 @@ index 0000000..35e4cc3
1279+# CONFIG_TOUCHSCREEN_INEXIO is not set 1287+# CONFIG_TOUCHSCREEN_INEXIO is not set
1280+# CONFIG_TOUCHSCREEN_MK712 is not set 1288+# CONFIG_TOUCHSCREEN_MK712 is not set
1281+# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1289+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1282+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set
1283+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1290+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1284+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1291+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1285+# CONFIG_TOUCHSCREEN_WM97XX is not set 1292+# CONFIG_TOUCHSCREEN_WM97XX is not set
@@ -1296,13 +1303,11 @@ index 0000000..35e4cc3
1296+# CONFIG_INPUT_AD714X is not set 1303+# CONFIG_INPUT_AD714X is not set
1297+# CONFIG_INPUT_ATI_REMOTE is not set 1304+# CONFIG_INPUT_ATI_REMOTE is not set
1298+# CONFIG_INPUT_ATI_REMOTE2 is not set 1305+# CONFIG_INPUT_ATI_REMOTE2 is not set
1299+# CONFIG_INPUT_KEYCHORD is not set
1300+# CONFIG_INPUT_KEYSPAN_REMOTE is not set 1306+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
1301+# CONFIG_INPUT_POWERMATE is not set 1307+# CONFIG_INPUT_POWERMATE is not set
1302+# CONFIG_INPUT_YEALINK is not set 1308+# CONFIG_INPUT_YEALINK is not set
1303+# CONFIG_INPUT_CM109 is not set 1309+# CONFIG_INPUT_CM109 is not set
1304+CONFIG_INPUT_UINPUT=y 1310+CONFIG_INPUT_UINPUT=y
1305+# CONFIG_INPUT_GPIO is not set
1306+# CONFIG_INPUT_PCF8574 is not set 1311+# CONFIG_INPUT_PCF8574 is not set
1307+# CONFIG_INPUT_PWM_BEEPER is not set 1312+# CONFIG_INPUT_PWM_BEEPER is not set
1308+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set 1313+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
@@ -1338,7 +1343,6 @@ index 0000000..35e4cc3
1338+# CONFIG_NOZOMI is not set 1343+# CONFIG_NOZOMI is not set
1339+# CONFIG_N_GSM is not set 1344+# CONFIG_N_GSM is not set
1340+# CONFIG_TRACE_SINK is not set 1345+# CONFIG_TRACE_SINK is not set
1341+CONFIG_DEVMEM=y
1342+CONFIG_DEVKMEM=y 1346+CONFIG_DEVKMEM=y
1343+ 1347+
1344+# 1348+#
@@ -1374,7 +1378,6 @@ index 0000000..35e4cc3
1374+# CONFIG_RAW_DRIVER is not set 1378+# CONFIG_RAW_DRIVER is not set
1375+# CONFIG_TCG_TPM is not set 1379+# CONFIG_TCG_TPM is not set
1376+CONFIG_DEVPORT=y 1380+CONFIG_DEVPORT=y
1377+# CONFIG_DCC_TTY is not set
1378+# CONFIG_RAMOOPS is not set 1381+# CONFIG_RAMOOPS is not set
1379+CONFIG_MXS_VIIM=y 1382+CONFIG_MXS_VIIM=y
1380+CONFIG_I2C=y 1383+CONFIG_I2C=y
@@ -1383,6 +1386,7 @@ index 0000000..35e4cc3
1383+CONFIG_I2C_CHARDEV=y 1386+CONFIG_I2C_CHARDEV=y
1384+# CONFIG_I2C_MUX is not set 1387+# CONFIG_I2C_MUX is not set
1385+CONFIG_I2C_HELPER_AUTO=y 1388+CONFIG_I2C_HELPER_AUTO=y
1389+CONFIG_I2C_ALGOBIT=m
1386+ 1390+
1387+# 1391+#
1388+# I2C Hardware Bus support 1392+# I2C Hardware Bus support
@@ -1865,12 +1869,11 @@ index 0000000..35e4cc3
1865+# CONFIG_VIDEO_MXC_CSI_CAMERA is not set 1869+# CONFIG_VIDEO_MXC_CSI_CAMERA is not set
1866+# CONFIG_MXC_CAMERA_MICRON111 is not set 1870+# CONFIG_MXC_CAMERA_MICRON111 is not set
1867+# CONFIG_MXC_CAMERA_OV2640 is not set 1871+# CONFIG_MXC_CAMERA_OV2640 is not set
1868+CONFIG_MXC_CAMERA_OV3640=m 1872+# CONFIG_MXC_CAMERA_OV3640 is not set
1869+CONFIG_MXC_CAMERA_OV5640=m 1873+# CONFIG_MXC_CAMERA_OV5640 is not set
1870+CONFIG_MXC_CAMERA_OV8820_MIPI=m 1874+# CONFIG_MXC_CAMERA_OV8820_MIPI is not set
1871+CONFIG_MXC_CAMERA_OV5642=m 1875+CONFIG_MXC_CAMERA_OV5642=m
1872+CONFIG_MXC_TVIN_ADV7180=m 1876+# CONFIG_MXC_CAMERA_OV5640_MIPI is not set
1873+CONFIG_MXC_CAMERA_OV5640_MIPI=m
1874+CONFIG_MXC_CAMERA_SENSOR_CLK=m 1877+CONFIG_MXC_CAMERA_SENSOR_CLK=m
1875+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m 1878+CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
1876+CONFIG_MXC_IPU_PRP_ENC=m 1879+CONFIG_MXC_IPU_PRP_ENC=m
@@ -1880,6 +1883,7 @@ index 0000000..35e4cc3
1880+# CONFIG_VIDEO_MXC_IPUV1_WVGA_OUTPUT is not set 1883+# CONFIG_VIDEO_MXC_IPUV1_WVGA_OUTPUT is not set
1881+# CONFIG_VIDEO_MXC_OPL is not set 1884+# CONFIG_VIDEO_MXC_OPL is not set
1882+# CONFIG_VIDEO_CPIA2 is not set 1885+# CONFIG_VIDEO_CPIA2 is not set
1886+# CONFIG_VIDEO_ZORAN is not set
1883+# CONFIG_VIDEO_SAA7134 is not set 1887+# CONFIG_VIDEO_SAA7134 is not set
1884+# CONFIG_VIDEO_MXB is not set 1888+# CONFIG_VIDEO_MXB is not set
1885+# CONFIG_VIDEO_HEXIUM_ORION is not set 1889+# CONFIG_VIDEO_HEXIUM_ORION is not set
@@ -1951,8 +1955,11 @@ index 0000000..35e4cc3
1951+# 1955+#
1952+# Graphics support 1956+# Graphics support
1953+# 1957+#
1958+CONFIG_VGA_ARB=y
1959+CONFIG_VGA_ARB_MAX_GPUS=16
1954+CONFIG_DRM=m 1960+CONFIG_DRM=m
1955+CONFIG_DRM_VIVANTE=m 1961+CONFIG_DRM_VIVANTE=m
1962+# CONFIG_STUB_POULSBO is not set
1956+# CONFIG_VGASTATE is not set 1963+# CONFIG_VGASTATE is not set
1957+# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1964+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1958+CONFIG_FB=y 1965+CONFIG_FB=y
@@ -1969,7 +1976,6 @@ index 0000000..35e4cc3
1969+# CONFIG_FB_FOREIGN_ENDIAN is not set 1976+# CONFIG_FB_FOREIGN_ENDIAN is not set
1970+# CONFIG_FB_SYS_FOPS is not set 1977+# CONFIG_FB_SYS_FOPS is not set
1971+# CONFIG_FB_WMT_GE_ROPS is not set 1978+# CONFIG_FB_WMT_GE_ROPS is not set
1972+CONFIG_FB_DEFERRED_IO=y
1973+# CONFIG_FB_SVGALIB is not set 1979+# CONFIG_FB_SVGALIB is not set
1974+# CONFIG_FB_MACMODES is not set 1980+# CONFIG_FB_MACMODES is not set
1975+# CONFIG_FB_BACKLIGHT is not set 1981+# CONFIG_FB_BACKLIGHT is not set
@@ -2090,6 +2096,71 @@ index 0000000..35e4cc3
2090+# CONFIG_SND_MTPAV is not set 2096+# CONFIG_SND_MTPAV is not set
2091+# CONFIG_SND_SERIAL_U16550 is not set 2097+# CONFIG_SND_SERIAL_U16550 is not set
2092+# CONFIG_SND_MPU401 is not set 2098+# CONFIG_SND_MPU401 is not set
2099+CONFIG_SND_PCI=y
2100+# CONFIG_SND_AD1889 is not set
2101+# CONFIG_SND_ALS300 is not set
2102+# CONFIG_SND_ALI5451 is not set
2103+# CONFIG_SND_ATIIXP is not set
2104+# CONFIG_SND_ATIIXP_MODEM is not set
2105+# CONFIG_SND_AU8810 is not set
2106+# CONFIG_SND_AU8820 is not set
2107+# CONFIG_SND_AU8830 is not set
2108+# CONFIG_SND_AW2 is not set
2109+# CONFIG_SND_AZT3328 is not set
2110+# CONFIG_SND_BT87X is not set
2111+# CONFIG_SND_CA0106 is not set
2112+# CONFIG_SND_CMIPCI is not set
2113+# CONFIG_SND_OXYGEN is not set
2114+# CONFIG_SND_CS4281 is not set
2115+# CONFIG_SND_CS46XX is not set
2116+# CONFIG_SND_CS5535AUDIO is not set
2117+# CONFIG_SND_CTXFI is not set
2118+# CONFIG_SND_DARLA20 is not set
2119+# CONFIG_SND_GINA20 is not set
2120+# CONFIG_SND_LAYLA20 is not set
2121+# CONFIG_SND_DARLA24 is not set
2122+# CONFIG_SND_GINA24 is not set
2123+# CONFIG_SND_LAYLA24 is not set
2124+# CONFIG_SND_MONA is not set
2125+# CONFIG_SND_MIA is not set
2126+# CONFIG_SND_ECHO3G is not set
2127+# CONFIG_SND_INDIGO is not set
2128+# CONFIG_SND_INDIGOIO is not set
2129+# CONFIG_SND_INDIGODJ is not set
2130+# CONFIG_SND_INDIGOIOX is not set
2131+# CONFIG_SND_INDIGODJX is not set
2132+# CONFIG_SND_EMU10K1 is not set
2133+# CONFIG_SND_EMU10K1X is not set
2134+# CONFIG_SND_ENS1370 is not set
2135+# CONFIG_SND_ENS1371 is not set
2136+# CONFIG_SND_ES1938 is not set
2137+# CONFIG_SND_ES1968 is not set
2138+# CONFIG_SND_FM801 is not set
2139+# CONFIG_SND_HDA_INTEL is not set
2140+# CONFIG_SND_HDSP is not set
2141+# CONFIG_SND_HDSPM is not set
2142+# CONFIG_SND_ICE1712 is not set
2143+# CONFIG_SND_ICE1724 is not set
2144+# CONFIG_SND_INTEL8X0 is not set
2145+# CONFIG_SND_INTEL8X0M is not set
2146+# CONFIG_SND_KORG1212 is not set
2147+# CONFIG_SND_LOLA is not set
2148+# CONFIG_SND_LX6464ES is not set
2149+# CONFIG_SND_MAESTRO3 is not set
2150+# CONFIG_SND_MIXART is not set
2151+# CONFIG_SND_NM256 is not set
2152+# CONFIG_SND_PCXHR is not set
2153+# CONFIG_SND_RIPTIDE is not set
2154+# CONFIG_SND_RME32 is not set
2155+# CONFIG_SND_RME96 is not set
2156+# CONFIG_SND_RME9652 is not set
2157+# CONFIG_SND_SONICVIBES is not set
2158+# CONFIG_SND_TRIDENT is not set
2159+# CONFIG_SND_VIA82XX is not set
2160+# CONFIG_SND_VIA82XX_MODEM is not set
2161+# CONFIG_SND_VIRTUOSO is not set
2162+# CONFIG_SND_VX222 is not set
2163+# CONFIG_SND_YMFPCI is not set
2093+CONFIG_SND_ARM=y 2164+CONFIG_SND_ARM=y
2094+CONFIG_SND_SPI=y 2165+CONFIG_SND_SPI=y
2095+CONFIG_SND_USB=y 2166+CONFIG_SND_USB=y
@@ -2179,7 +2250,7 @@ index 0000000..35e4cc3
2179+# CONFIG_HID_ZYDACRON is not set 2250+# CONFIG_HID_ZYDACRON is not set
2180+CONFIG_USB_SUPPORT=y 2251+CONFIG_USB_SUPPORT=y
2181+CONFIG_USB_ARCH_HAS_HCD=y 2252+CONFIG_USB_ARCH_HAS_HCD=y
2182+# CONFIG_USB_ARCH_HAS_OHCI is not set 2253+CONFIG_USB_ARCH_HAS_OHCI=y
2183+CONFIG_USB_ARCH_HAS_EHCI=y 2254+CONFIG_USB_ARCH_HAS_EHCI=y
2184+CONFIG_USB=y 2255+CONFIG_USB=y
2185+# CONFIG_USB_DEBUG is not set 2256+# CONFIG_USB_DEBUG is not set
@@ -2367,17 +2438,16 @@ index 0000000..35e4cc3
2367+# CONFIG_USB_ZERO is not set 2438+# CONFIG_USB_ZERO is not set
2368+# CONFIG_USB_AUDIO is not set 2439+# CONFIG_USB_AUDIO is not set
2369+# CONFIG_USB_ETH is not set 2440+# CONFIG_USB_ETH is not set
2370+CONFIG_USB_ETH_RNDIS=y
2371+# CONFIG_USB_ETH_EEM is not set
2372+# CONFIG_USB_G_NCM is not set 2441+# CONFIG_USB_G_NCM is not set
2373+# CONFIG_USB_GADGETFS is not set 2442+# CONFIG_USB_GADGETFS is not set
2374+# CONFIG_USB_FUNCTIONFS is not set 2443+# CONFIG_USB_FUNCTIONFS is not set
2375+CONFIG_USB_FILE_STORAGE=m 2444+CONFIG_USB_FILE_STORAGE=m
2445+# CONFIG_FSL_UTP is not set
2446+# CONFIG_USB_FILE_STORAGE_TEST is not set
2376+# CONFIG_USB_MASS_STORAGE is not set 2447+# CONFIG_USB_MASS_STORAGE is not set
2377+CONFIG_USB_G_SERIAL=m 2448+CONFIG_USB_G_SERIAL=m
2378+# CONFIG_USB_MIDI_GADGET is not set 2449+# CONFIG_USB_MIDI_GADGET is not set
2379+# CONFIG_USB_G_PRINTER is not set 2450+# CONFIG_USB_G_PRINTER is not set
2380+CONFIG_USB_G_ANDROID=y
2381+# CONFIG_USB_CDC_COMPOSITE is not set 2451+# CONFIG_USB_CDC_COMPOSITE is not set
2382+# CONFIG_USB_G_MULTI is not set 2452+# CONFIG_USB_G_MULTI is not set
2383+# CONFIG_USB_G_HID is not set 2453+# CONFIG_USB_G_HID is not set
@@ -2392,12 +2462,11 @@ index 0000000..35e4cc3
2392+# CONFIG_USB_ULPI is not set 2462+# CONFIG_USB_ULPI is not set
2393+# CONFIG_NOP_USB_XCEIV is not set 2463+# CONFIG_NOP_USB_XCEIV is not set
2394+CONFIG_MXC_OTG=y 2464+CONFIG_MXC_OTG=y
2465+# CONFIG_UWB is not set
2395+CONFIG_MMC=y 2466+CONFIG_MMC=y
2396+# CONFIG_MMC_DEBUG is not set 2467+# CONFIG_MMC_DEBUG is not set
2397+CONFIG_MMC_UNSAFE_RESUME=y 2468+CONFIG_MMC_UNSAFE_RESUME=y
2398+# CONFIG_MMC_CLKGATE is not set 2469+# CONFIG_MMC_CLKGATE is not set
2399+# CONFIG_MMC_EMBEDDED_SDIO is not set
2400+# CONFIG_MMC_PARANOID_SD_INIT is not set
2401+ 2470+
2402+# 2471+#
2403+# MMC/SD/SDIO Card Drivers 2472+# MMC/SD/SDIO Card Drivers
@@ -2422,7 +2491,6 @@ index 0000000..35e4cc3
2422+# CONFIG_MMC_DW is not set 2491+# CONFIG_MMC_DW is not set
2423+# CONFIG_MMC_VUB300 is not set 2492+# CONFIG_MMC_VUB300 is not set
2424+# CONFIG_MMC_USHC is not set 2493+# CONFIG_MMC_USHC is not set
2425+# CONFIG_SDHCI_USE_LEDS_CLASS is not set
2426+# CONFIG_MEMSTICK is not set 2494+# CONFIG_MEMSTICK is not set
2427+CONFIG_NEW_LEDS=y 2495+CONFIG_NEW_LEDS=y
2428+CONFIG_LEDS_CLASS=y 2496+CONFIG_LEDS_CLASS=y
@@ -2463,6 +2531,7 @@ index 0000000..35e4cc3
2463+# 2531+#
2464+# CONFIG_NFC_DEVICES is not set 2532+# CONFIG_NFC_DEVICES is not set
2465+# CONFIG_ACCESSIBILITY is not set 2533+# CONFIG_ACCESSIBILITY is not set
2534+# CONFIG_INFINIBAND is not set
2466+CONFIG_RTC_LIB=y 2535+CONFIG_RTC_LIB=y
2467+CONFIG_RTC_CLASS=y 2536+CONFIG_RTC_CLASS=y
2468+CONFIG_RTC_HCTOSYS=y 2537+CONFIG_RTC_HCTOSYS=y
@@ -2610,6 +2679,7 @@ index 0000000..35e4cc3
2610+# 2679+#
2611+CONFIG_MXC_VPU=y 2680+CONFIG_MXC_VPU=y
2612+# CONFIG_MXC_VPU_DEBUG is not set 2681+# CONFIG_MXC_VPU_DEBUG is not set
2682+# CONFIG_MX6_VPU_352M is not set
2613+ 2683+
2614+# 2684+#
2615+# MXC Asynchronous Sample Rate Converter support 2685+# MXC Asynchronous Sample Rate Converter support
@@ -2728,13 +2798,11 @@ index 0000000..35e4cc3
2728+CONFIG_MISC_FILESYSTEMS=y 2798+CONFIG_MISC_FILESYSTEMS=y
2729+# CONFIG_ADFS_FS is not set 2799+# CONFIG_ADFS_FS is not set
2730+# CONFIG_AFFS_FS is not set 2800+# CONFIG_AFFS_FS is not set
2731+# CONFIG_ECRYPT_FS is not set
2732+# CONFIG_HFS_FS is not set 2801+# CONFIG_HFS_FS is not set
2733+# CONFIG_HFSPLUS_FS is not set 2802+# CONFIG_HFSPLUS_FS is not set
2734+# CONFIG_BEFS_FS is not set 2803+# CONFIG_BEFS_FS is not set
2735+# CONFIG_BFS_FS is not set 2804+# CONFIG_BFS_FS is not set
2736+# CONFIG_EFS_FS is not set 2805+# CONFIG_EFS_FS is not set
2737+# CONFIG_YAFFS_FS is not set
2738+CONFIG_JFFS2_FS=y 2806+CONFIG_JFFS2_FS=y
2739+CONFIG_JFFS2_FS_DEBUG=0 2807+CONFIG_JFFS2_FS_DEBUG=0
2740+CONFIG_JFFS2_FS_WRITEBUFFER=y 2808+CONFIG_JFFS2_FS_WRITEBUFFER=y
@@ -2859,6 +2927,8 @@ index 0000000..35e4cc3
2859+# CONFIG_DEBUG_SECTION_MISMATCH is not set 2927+# CONFIG_DEBUG_SECTION_MISMATCH is not set
2860+# CONFIG_DEBUG_KERNEL is not set 2928+# CONFIG_DEBUG_KERNEL is not set
2861+# CONFIG_HARDLOCKUP_DETECTOR is not set 2929+# CONFIG_HARDLOCKUP_DETECTOR is not set
2930+# CONFIG_SLUB_DEBUG_ON is not set
2931+# CONFIG_SLUB_STATS is not set
2862+# CONFIG_SPARSE_RCU_POINTER is not set 2932+# CONFIG_SPARSE_RCU_POINTER is not set
2863+CONFIG_DEBUG_BUGVERBOSE=y 2933+CONFIG_DEBUG_BUGVERBOSE=y
2864+# CONFIG_DEBUG_MEMORY_INIT is not set 2934+# CONFIG_DEBUG_MEMORY_INIT is not set
@@ -2997,6 +3067,7 @@ index 0000000..35e4cc3
2997+# CONFIG_CRYPTO_USER_API_HASH is not set 3067+# CONFIG_CRYPTO_USER_API_HASH is not set
2998+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set 3068+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
2999+CONFIG_CRYPTO_HW=y 3069+CONFIG_CRYPTO_HW=y
3070+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
3000+CONFIG_CRYPTO_DEV_FSL_CAAM=y 3071+CONFIG_CRYPTO_DEV_FSL_CAAM=y
3001+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 3072+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
3002+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y 3073+CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y
@@ -3018,7 +3089,7 @@ index 0000000..35e4cc3
3018+# CONFIG_CRC_T10DIF is not set 3089+# CONFIG_CRC_T10DIF is not set
3019+# CONFIG_CRC_ITU_T is not set 3090+# CONFIG_CRC_ITU_T is not set
3020+CONFIG_CRC32=y 3091+CONFIG_CRC32=y
3021+# CONFIG_CRC7 is not set 3092+CONFIG_CRC7=y
3022+# CONFIG_LIBCRC32C is not set 3093+# CONFIG_LIBCRC32C is not set
3023+CONFIG_ZLIB_INFLATE=y 3094+CONFIG_ZLIB_INFLATE=y
3024+CONFIG_ZLIB_DEFLATE=y 3095+CONFIG_ZLIB_DEFLATE=y
@@ -3026,13 +3097,14 @@ index 0000000..35e4cc3
3026+CONFIG_LZO_DECOMPRESS=y 3097+CONFIG_LZO_DECOMPRESS=y
3027+# CONFIG_XZ_DEC is not set 3098+# CONFIG_XZ_DEC is not set
3028+# CONFIG_XZ_DEC_BCJ is not set 3099+# CONFIG_XZ_DEC_BCJ is not set
3100+CONFIG_DECOMPRESS_GZIP=y
3029+CONFIG_GENERIC_ALLOCATOR=y 3101+CONFIG_GENERIC_ALLOCATOR=y
3030+CONFIG_HAS_IOMEM=y 3102+CONFIG_HAS_IOMEM=y
3031+CONFIG_HAS_IOPORT=y 3103+CONFIG_HAS_IOPORT=y
3032+CONFIG_HAS_DMA=y 3104+CONFIG_HAS_DMA=y
3033+CONFIG_CPU_RMAP=y 3105+CONFIG_CPU_RMAP=y
3034+CONFIG_NLATTR=y 3106+CONFIG_NLATTR=y
3035+# CONFIG_AVERAGE is not set 3107+CONFIG_AVERAGE=y
3036diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig 3108diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
3037old mode 100755 3109old mode 100755
3038new mode 100644 3110new mode 100644
@@ -3172,7 +3244,7 @@ index 45ae9ea..fad950e 100644
3172 Include support for i.MX 6Quad SABRE Lite platform. This includes specific 3244 Include support for i.MX 6Quad SABRE Lite platform. This includes specific
3173 configurations for the board and its peripherals. 3245 configurations for the board and its peripherals.
3174diff --git a/arch/arm/mach-mx6/board-mx6q_sabrelite.c b/arch/arm/mach-mx6/board-mx6q_sabrelite.c 3246diff --git a/arch/arm/mach-mx6/board-mx6q_sabrelite.c b/arch/arm/mach-mx6/board-mx6q_sabrelite.c
3175index eff81ac..6b66ea3 100644 3247index eff81ac..2c0cbe2 100644
3176--- a/arch/arm/mach-mx6/board-mx6q_sabrelite.c 3248--- a/arch/arm/mach-mx6/board-mx6q_sabrelite.c
3177+++ b/arch/arm/mach-mx6/board-mx6q_sabrelite.c 3249+++ b/arch/arm/mach-mx6/board-mx6q_sabrelite.c
3178@@ -56,12 +56,15 @@ 3250@@ -56,12 +56,15 @@
@@ -3777,10 +3849,10 @@ index eff81ac..6b66ea3 100644
3777+ /* Camera reset */ 3849+ /* Camera reset */
3778+ gpio_direction_output(reset_gp, 0); 3850+ gpio_direction_output(reset_gp, 0);
3779+ gpio_direction_output(reset_gp2, 0); 3851+ gpio_direction_output(reset_gp2, 0);
3780+ msleep(1);
3781+ gpio_set_value(power_gp, 0);
3782 msleep(1); 3852 msleep(1);
3783- gpio_set_value(MX6Q_SABRELITE_CSI0_PWN, 0); 3853- gpio_set_value(MX6Q_SABRELITE_CSI0_PWN, 0);
3854+ gpio_set_value(power_gp, 0);
3855+ msleep(1);
3784+ gpio_set_value(reset_gp, 1); 3856+ gpio_set_value(reset_gp, 1);
3785+ gpio_set_value(reset_gp2, 1); 3857+ gpio_set_value(reset_gp2, 1);
3786+} 3858+}
@@ -3874,13 +3946,13 @@ index eff81ac..6b66ea3 100644
3874+ I2C_BOARD_INFO("tsc2004", 0x48), 3946+ I2C_BOARD_INFO("tsc2004", 0x48),
3875+ .platform_data = &tsc2007_info, 3947+ .platform_data = &tsc2007_info,
3876+ .irq = gpio_to_irq(MX6_SABRELITE_DRGB_IRQGPIO), 3948+ .irq = gpio_to_irq(MX6_SABRELITE_DRGB_IRQGPIO),
3877+ }, 3949 },
3878+#if defined(CONFIG_TOUCHSCREEN_FT5X06) \ 3950+#if defined(CONFIG_TOUCHSCREEN_FT5X06) \
3879+ || defined(CONFIG_TOUCHSCREEN_FT5X06_MODULE) 3951+ || defined(CONFIG_TOUCHSCREEN_FT5X06_MODULE)
3880+ { 3952+ {
3881+ I2C_BOARD_INFO("ft5x06-ts", 0x38), 3953+ I2C_BOARD_INFO("ft5x06-ts", 0x38),
3882+ .irq = gpio_to_irq(MX6_SABRELITE_CAP_TCH_INT1), 3954+ .irq = gpio_to_irq(MX6_SABRELITE_CAP_TCH_INT1),
3883 }, 3955+ },
3884+#endif 3956+#endif
3885 }; 3957 };
3886 3958
@@ -3979,14 +4051,14 @@ index eff81ac..6b66ea3 100644
3979- .transceiver_switch = mx6q_sabrelite_flexcan0_switch, 4051- .transceiver_switch = mx6q_sabrelite_flexcan0_switch,
3980+ mx6_sabrelite_flexcan0_mc33902_pdata __initconst = { 4052+ mx6_sabrelite_flexcan0_mc33902_pdata __initconst = {
3981+ .transceiver_switch = mx6_sabrelite_flexcan0_mc33902_switch, 4053+ .transceiver_switch = mx6_sabrelite_flexcan0_mc33902_switch,
3982 }; 4054+};
3983 4055+
3984-static struct viv_gpu_platform_data imx6q_gpu_pdata __initdata = {
3985+static const struct flexcan_platform_data 4056+static const struct flexcan_platform_data
3986+ mx6_sabrelite_flexcan0_tja1040_pdata __initconst = { 4057+ mx6_sabrelite_flexcan0_tja1040_pdata __initconst = {
3987+ .transceiver_switch = mx6_sabrelite_flexcan0_tja1040_switch, 4058+ .transceiver_switch = mx6_sabrelite_flexcan0_tja1040_switch,
3988+}; 4059 };
3989+ 4060
4061-static struct viv_gpu_platform_data imx6q_gpu_pdata __initdata = {
3990+static struct viv_gpu_platform_data imx6_gpu_pdata __initdata = { 4062+static struct viv_gpu_platform_data imx6_gpu_pdata __initdata = {
3991 .reserved_mem_size = SZ_128M, 4063 .reserved_mem_size = SZ_128M,
3992 }; 4064 };
@@ -4017,7 +4089,7 @@ index eff81ac..6b66ea3 100644
4017 }; 4089 };
4018 4090
4019 static struct fsl_mxc_lcd_platform_data lcdif_data = { 4091 static struct fsl_mxc_lcd_platform_data lcdif_data = {
4020@@ -904,7 +774,7 @@ static void sabrelite_suspend_exit(void) 4092@@ -904,13 +774,12 @@ static void sabrelite_suspend_exit(void)
4021 { 4093 {
4022 /* resume restore */ 4094 /* resume restore */
4023 } 4095 }
@@ -4026,7 +4098,13 @@ index eff81ac..6b66ea3 100644
4026 .name = "imx_pm", 4098 .name = "imx_pm",
4027 .suspend_enter = sabrelite_suspend_enter, 4099 .suspend_enter = sabrelite_suspend_enter,
4028 .suspend_exit = sabrelite_suspend_exit, 4100 .suspend_exit = sabrelite_suspend_exit,
4029@@ -922,12 +792,12 @@ static const struct pm_platform_data mx6q_sabrelite_pm_data __initconst = { 4101 };
4102
4103-#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
4104 #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \
4105 { \
4106 .gpio = gpio_num, \
4107@@ -922,14 +791,15 @@ static const struct pm_platform_data mx6q_sabrelite_pm_data __initconst = {
4030 } 4108 }
4031 4109
4032 static struct gpio_keys_button sabrelite_buttons[] = { 4110 static struct gpio_keys_button sabrelite_buttons[] = {
@@ -4044,11 +4122,26 @@ index eff81ac..6b66ea3 100644
4044+ GPIO_BUTTON(MX6_SABRELITE_VOL_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0), 4122+ GPIO_BUTTON(MX6_SABRELITE_VOL_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0),
4045 }; 4123 };
4046 4124
4125+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
4047 static struct gpio_keys_platform_data sabrelite_button_data = { 4126 static struct gpio_keys_platform_data sabrelite_button_data = {
4048@@ -952,6 +822,54 @@ static void __init sabrelite_add_device_buttons(void) 4127 .buttons = sabrelite_buttons,
4049 static void __init sabrelite_add_device_buttons(void) {} 4128 .nbuttons = ARRAY_SIZE(sabrelite_buttons),
4050 #endif 4129@@ -949,7 +819,63 @@ static void __init sabrelite_add_device_buttons(void)
4051 4130 platform_device_register(&sabrelite_button_device);
4131 }
4132 #else
4133-static void __init sabrelite_add_device_buttons(void) {}
4134+static void __init sabrelite_add_device_buttons(void)
4135+{
4136+ int i;
4137+ for (i=0; i < ARRAY_SIZE(sabrelite_buttons);i++) {
4138+ int gpio = sabrelite_buttons[i].gpio;
4139+ pr_debug("%s: exporting gpio %d\n", __func__, gpio);
4140+ gpio_export(gpio,1);
4141+ }
4142+}
4143+#endif
4144+
4052+#ifdef CONFIG_WL12XX_PLATFORM_DATA 4145+#ifdef CONFIG_WL12XX_PLATFORM_DATA
4053+static void wl1271_set_power(bool enable) 4146+static void wl1271_set_power(bool enable)
4054+{ 4147+{
@@ -4095,12 +4188,10 @@ index eff81ac..6b66ea3 100644
4095+ .platform_data = &n6q_vwl1271_reg_config, 4188+ .platform_data = &n6q_vwl1271_reg_config,
4096+ }, 4189+ },
4097+}; 4190+};
4098+#endif 4191 #endif
4099+ 4192
4100 static struct regulator_consumer_supply sabrelite_vmmc_consumers[] = { 4193 static struct regulator_consumer_supply sabrelite_vmmc_consumers[] = {
4101 REGULATOR_SUPPLY("vmmc", "sdhci-esdhc-imx.2"), 4194@@ -1056,7 +982,7 @@ static struct platform_device sgtl5000_sabrelite_vddd_reg_devices = {
4102 REGULATOR_SUPPLY("vmmc", "sdhci-esdhc-imx.3"),
4103@@ -1056,7 +974,7 @@ static struct platform_device sgtl5000_sabrelite_vddd_reg_devices = {
4104 4195
4105 #endif /* CONFIG_SND_SOC_SGTL5000 */ 4196 #endif /* CONFIG_SND_SOC_SGTL5000 */
4106 4197
@@ -4109,7 +4200,7 @@ index eff81ac..6b66ea3 100644
4109 { 4200 {
4110 mxc_register_device(&mx6_sabrelite_audio_device, 4201 mxc_register_device(&mx6_sabrelite_audio_device,
4111 &mx6_sabrelite_audio_data); 4202 &mx6_sabrelite_audio_data);
4112@@ -1069,6 +987,15 @@ static int imx6q_init_audio(void) 4203@@ -1069,6 +995,15 @@ static int imx6q_init_audio(void)
4113 return 0; 4204 return 0;
4114 } 4205 }
4115 4206
@@ -4125,7 +4216,7 @@ index eff81ac..6b66ea3 100644
4125 static struct platform_pwm_backlight_data mx6_sabrelite_pwm_backlight_data = { 4216 static struct platform_pwm_backlight_data mx6_sabrelite_pwm_backlight_data = {
4126 .pwm_id = 3, 4217 .pwm_id = 3,
4127 .max_brightness = 255, 4218 .max_brightness = 255,
4128@@ -1115,19 +1042,37 @@ static struct mipi_csi2_platform_data mipi_csi2_pdata = { 4219@@ -1115,19 +1050,37 @@ static struct mipi_csi2_platform_data mipi_csi2_pdata = {
4129 .pixel_clk = "emi_clk", 4220 .pixel_clk = "emi_clk",
4130 }; 4221 };
4131 4222
@@ -4166,7 +4257,7 @@ index eff81ac..6b66ea3 100644
4166 4257
4167 #ifdef CONFIG_FEC_1588 4258 #ifdef CONFIG_FEC_1588
4168 /* Set GPIO_16 input for IEEE-1588 ts_clk and RMII reference clock 4259 /* Set GPIO_16 input for IEEE-1588 ts_clk and RMII reference clock
4169@@ -1141,13 +1086,26 @@ static void __init mx6_sabrelite_board_init(void) 4260@@ -1141,13 +1094,26 @@ static void __init mx6_sabrelite_board_init(void)
4170 gp_reg_id = sabrelite_dvfscore_data.reg_id; 4261 gp_reg_id = sabrelite_dvfscore_data.reg_id;
4171 soc_reg_id = sabrelite_dvfscore_data.soc_id; 4262 soc_reg_id = sabrelite_dvfscore_data.soc_id;
4172 pu_reg_id = sabrelite_dvfscore_data.pu_id; 4263 pu_reg_id = sabrelite_dvfscore_data.pu_id;
@@ -4197,7 +4288,7 @@ index eff81ac..6b66ea3 100644
4197 imx6q_add_ipuv3fb(i, &sabrelite_fb_data[i]); 4288 imx6q_add_ipuv3fb(i, &sabrelite_fb_data[i]);
4198 4289
4199 imx6q_add_vdoa(); 4290 imx6q_add_vdoa();
4200@@ -1161,9 +1119,9 @@ static void __init mx6_sabrelite_board_init(void) 4291@@ -1161,9 +1127,9 @@ static void __init mx6_sabrelite_board_init(void)
4201 4292
4202 imx6q_add_imx_caam(); 4293 imx6q_add_imx_caam();
4203 4294
@@ -4210,7 +4301,7 @@ index eff81ac..6b66ea3 100644
4210 i2c_register_board_info(0, mxc_i2c0_board_info, 4301 i2c_register_board_info(0, mxc_i2c0_board_info,
4211 ARRAY_SIZE(mxc_i2c0_board_info)); 4302 ARRAY_SIZE(mxc_i2c0_board_info));
4212 i2c_register_board_info(1, mxc_i2c1_board_info, 4303 i2c_register_board_info(1, mxc_i2c1_board_info,
4213@@ -1172,33 +1130,35 @@ static void __init mx6_sabrelite_board_init(void) 4304@@ -1172,33 +1138,35 @@ static void __init mx6_sabrelite_board_init(void)
4214 ARRAY_SIZE(mxc_i2c2_board_info)); 4305 ARRAY_SIZE(mxc_i2c2_board_info));
4215 4306
4216 /* SPI */ 4307 /* SPI */
@@ -4256,7 +4347,7 @@ index eff81ac..6b66ea3 100644
4256 imx6q_add_mxc_pwm_backlight(3, &mx6_sabrelite_pwm_backlight_data); 4347 imx6q_add_mxc_pwm_backlight(3, &mx6_sabrelite_pwm_backlight_data);
4257 4348
4258 imx6q_add_otp(); 4349 imx6q_add_otp();
4259@@ -1214,12 +1174,23 @@ static void __init mx6_sabrelite_board_init(void) 4350@@ -1214,12 +1182,23 @@ static void __init mx6_sabrelite_board_init(void)
4260 imx6q_add_hdmi_soc(); 4351 imx6q_add_hdmi_soc();
4261 imx6q_add_hdmi_soc_dai(); 4352 imx6q_add_hdmi_soc_dai();
4262 4353
@@ -4285,7 +4376,7 @@ index eff81ac..6b66ea3 100644
4285 4376
4286 clko2 = clk_get(NULL, "clko2_clk"); 4377 clko2 = clk_get(NULL, "clko2_clk");
4287 if (IS_ERR(clko2)) 4378 if (IS_ERR(clko2))
4288@@ -1235,6 +1206,28 @@ static void __init mx6_sabrelite_board_init(void) 4379@@ -1235,6 +1214,28 @@ static void __init mx6_sabrelite_board_init(void)
4289 clk_enable(clko2); 4380 clk_enable(clko2);
4290 imx6q_add_busfreq(); 4381 imx6q_add_busfreq();
4291 4382
@@ -4314,7 +4405,7 @@ index eff81ac..6b66ea3 100644
4314 imx6q_add_perfmon(0); 4405 imx6q_add_perfmon(0);
4315 imx6q_add_perfmon(1); 4406 imx6q_add_perfmon(1);
4316 imx6q_add_perfmon(2); 4407 imx6q_add_perfmon(2);
4317@@ -1258,16 +1251,16 @@ static struct sys_timer mx6_sabrelite_timer = { 4408@@ -1258,16 +1259,16 @@ static struct sys_timer mx6_sabrelite_timer = {
4318 .init = mx6_sabrelite_timer_init, 4409 .init = mx6_sabrelite_timer_init,
4319 }; 4410 };
4320 4411
@@ -4336,7 +4427,7 @@ index eff81ac..6b66ea3 100644
4336 } 4427 }
4337 #endif 4428 #endif
4338 } 4429 }
4339@@ -1283,5 +1276,5 @@ MACHINE_START(MX6Q_SABRELITE, "Freescale i.MX 6Quad Sabre-Lite Board") 4430@@ -1283,5 +1284,5 @@ MACHINE_START(MX6Q_SABRELITE, "Freescale i.MX 6Quad Sabre-Lite Board")
4340 .init_irq = mx6_init_irq, 4431 .init_irq = mx6_init_irq,
4341 .init_machine = mx6_sabrelite_board_init, 4432 .init_machine = mx6_sabrelite_board_init,
4342 .timer = &mx6_sabrelite_timer, 4433 .timer = &mx6_sabrelite_timer,
@@ -6349,13 +6440,270 @@ new mode 100644
6349diff --git a/drivers/mxc/mlb/mxc_mlb150.c b/drivers/mxc/mlb/mxc_mlb150.c 6440diff --git a/drivers/mxc/mlb/mxc_mlb150.c b/drivers/mxc/mlb/mxc_mlb150.c
6350old mode 100755 6441old mode 100755
6351new mode 100644 6442new mode 100644
6443diff --git a/drivers/mxc/thermal/thermal.c b/drivers/mxc/thermal/thermal.c
6444index 0982a7b..cb52033 100644
6445--- a/drivers/mxc/thermal/thermal.c
6446+++ b/drivers/mxc/thermal/thermal.c
6447@@ -131,17 +131,22 @@
6448 #define MEASURE_FREQ 3276 /* 3276 RTC clocks delay, 100ms */
6449 #define KELVIN_TO_CEL(t, off) (((t) - (off)))
6450 #define CEL_TO_KELVIN(t, off) (((t) + (off)))
6451-#define DEFAULT_RATIO 145
6452-#define DEFAULT_N40C 1563
6453-#define REG_VALUE_TO_CEL(ratio, raw) ((raw_n40c - raw) * 100 / ratio - 40)
6454+
6455+#define DEFAULT_RAW_25C 1469
6456+#define DEFAULT_RAW_HOT 1375
6457+#define DEFAULT_TEMP_HOT 90
6458+
6459 #define ANATOP_DEBUG false
6460 #define THERMAL_FUSE_NAME "/sys/fsl_otp/HW_OCOTP_ANA1"
6461
6462 /* variables */
6463 unsigned long anatop_base;
6464-unsigned int ratio;
6465-unsigned int raw_25c, raw_hot, hot_temp, raw_n40c, raw_125c, raw_critical;
6466+unsigned int raw_critical;
6467 static struct clk *pll3_clk;
6468+unsigned raw_25c;
6469+unsigned long long cvt_to_celsius;
6470+unsigned long long cvt_to_raw;
6471+
6472 static bool full_run = true;
6473 static bool suspend_flag;
6474 static unsigned int thermal_irq;
6475@@ -255,6 +260,7 @@ static int anatop_dump_temperature_register(void)
6476 __raw_readl(anatop_base + HW_ANADIG_ANA_MISC1));
6477 return 0;
6478 }
6479+
6480 static void anatop_update_alarm(unsigned int alarm_value)
6481 {
6482 if (cooling_device_disable || suspend_flag)
6483@@ -267,6 +273,21 @@ static void anatop_update_alarm(unsigned int alarm_value)
6484
6485 return;
6486 }
6487+
6488+int cvt_raw_to_celius(unsigned raw)
6489+{
6490+ int change = (raw_25c - raw);
6491+ change = (int)((change * cvt_to_celsius) >> 32);
6492+ return 25 + change;
6493+}
6494+
6495+int cvt_celius_to_raw(int celius)
6496+{
6497+ int change = (celius - 25);
6498+ change = (int)((change * cvt_to_raw) >> 32);
6499+ return raw_25c - change;
6500+}
6501+
6502 static int anatop_thermal_get_temp(struct thermal_zone_device *thermal,
6503 long *temp)
6504 {
6505@@ -277,7 +298,7 @@ static int anatop_thermal_get_temp(struct thermal_zone_device *thermal,
6506 if (!tz)
6507 return -EINVAL;
6508
6509- if (!ratio || suspend_flag) {
6510+ if (!raw_25c || suspend_flag) {
6511 *temp = KELVIN_TO_CEL(TEMP_ACTIVE, KELVIN_OFFSET);
6512 return 0;
6513 }
6514@@ -322,10 +343,10 @@ static int anatop_thermal_get_temp(struct thermal_zone_device *thermal,
6515 anatop_dump_temperature_register();
6516 /* only the temp between -40C and 125C is valid, this
6517 is for save */
6518- if (tmp <= raw_n40c && tmp >= raw_125c)
6519- tz->temperature = REG_VALUE_TO_CEL(ratio, tmp);
6520- else {
6521- printk(KERN_WARNING "Invalid temperature, force it to 25C\n");
6522+ tz->temperature = cvt_raw_to_celius(tmp);
6523+ if ((tz->temperature < -25) || (tz->temperature > 125)) {
6524+ pr_warn("Invalid temperature %ld C, force it to 25C\n",
6525+ tz->temperature);
6526 tz->temperature = 25;
6527 }
6528
6529@@ -482,7 +503,7 @@ static int anatop_thermal_set_trip_temp(struct thermal_zone_device *thermal,
6530 if (tz->trips.critical.flags.valid) {
6531 tz->trips.critical.temperature = CEL_TO_KELVIN(
6532 *temp, tz->kelvin_offset);
6533- raw_critical = raw_25c - ratio * (*temp - 25) / 100;
6534+ raw_critical = cvt_celius_to_raw(*temp);
6535 anatop_update_alarm(raw_critical);
6536 }
6537 break;
6538@@ -826,31 +847,48 @@ __setup("no_cooling_device", anatop_thermal_cooling_device_disable);
6539
6540 static int anatop_thermal_counting_ratio(unsigned int fuse_data)
6541 {
6542+ unsigned raw25c, raw_hot, hot_temp;
6543 int ret = -EINVAL;
6544
6545 pr_info("Thermal calibration data is 0x%x\n", fuse_data);
6546- if (fuse_data == 0 || fuse_data == 0xffffffff || (fuse_data & 0xff) == 0) {
6547- pr_info("%s: invalid calibration data, disable cooling!!!\n", __func__);
6548- cooling_device_disable = true;
6549- ratio = DEFAULT_RATIO;
6550- disable_irq(thermal_irq);
6551- return ret;
6552- }
6553
6554 ret = 0;
6555 /* Fuse data layout:
6556 * [31:20] sensor value @ 25C
6557 * [19:8] sensor value of hot
6558 * [7:0] hot temperature value */
6559- raw_25c = fuse_data >> 20;
6560+ raw25c = fuse_data >> 20;
6561 raw_hot = (fuse_data & 0xfff00) >> 8;
6562 hot_temp = fuse_data & 0xff;
6563
6564- ratio = ((raw_25c - raw_hot) * 100) / (hot_temp - 25);
6565- raw_n40c = raw_25c + (13 * ratio) / 20;
6566- raw_125c = raw_25c - ratio;
6567+ if ((raw25c <= raw_hot) || (hot_temp <= 25)) {
6568+ pr_info("%s: invalid calibration data, disable cooling!!! raw25c=%x raw_hot=%x hot_temp=%x\n",
6569+ __func__, raw25c, raw_hot, hot_temp);
6570+ cooling_device_disable = true;
6571+ raw_25c = DEFAULT_RAW_25C;
6572+ disable_irq(thermal_irq);
6573+ cvt_to_celsius = (DEFAULT_TEMP_HOT - 25);
6574+ cvt_to_celsius <<= 32;
6575+ cvt_to_celsius /= DEFAULT_RAW_25C - DEFAULT_RAW_HOT;
6576+
6577+ cvt_to_raw = DEFAULT_RAW_25C - DEFAULT_RAW_HOT;
6578+ cvt_to_raw <<= 32;
6579+ cvt_to_raw /= (DEFAULT_TEMP_HOT - 25);
6580+ return ret;
6581+ }
6582+ ret = 0;
6583+ raw_25c = raw25c;
6584+ cvt_to_celsius = hot_temp - 25; /* hot_temp > 25 */
6585+ cvt_to_celsius <<= 32;
6586+ do_div(cvt_to_celsius, raw25c - raw_hot); /* raw25c > raw_hot */
6587+
6588+ cvt_to_raw = raw25c - raw_hot;
6589+ cvt_to_raw <<= 32;
6590+ do_div(cvt_to_raw, hot_temp - 25);
6591+ pr_info("%s: raw25c=%d raw_hot=%d hot_temp=%d\n", __func__, raw25c, raw_hot, hot_temp);
6592+
6593 /* Init default critical temp to set alarm */
6594- raw_critical = raw_25c - ratio * (KELVIN_TO_CEL(TEMP_CRITICAL, KELVIN_OFFSET) - 25) / 100;
6595+ raw_critical = cvt_celius_to_raw(KELVIN_TO_CEL(TEMP_CRITICAL, KELVIN_OFFSET));
6596 clk_enable(pll3_clk);
6597 anatop_update_alarm(raw_critical);
6598
6599@@ -877,6 +915,7 @@ static int anatop_thermal_probe(struct platform_device *pdev)
6600 struct resource *res_io, *res_irq, *res_calibration;
6601 void __iomem *base, *calibration_addr;
6602 struct anatop_device *device;
6603+ unsigned fuse_data;
6604
6605 device = kzalloc(sizeof(*device), GFP_KERNEL);
6606 if (!device) {
6607@@ -919,9 +958,13 @@ static int anatop_thermal_probe(struct platform_device *pdev)
6608 goto anatop_failed;
6609 }
6610
6611- raw_n40c = DEFAULT_N40C;
6612 /* use calibration data to get ratio */
6613- anatop_thermal_counting_ratio(__raw_readl(calibration_addr));
6614+ fuse_data = __raw_readl(calibration_addr);
6615+#if 1
6616+ if (!fuse_data)
6617+ fuse_data = (0x552 << 8) | 58 | (0x58e << 20);
6618+#endif
6619+ anatop_thermal_counting_ratio(fuse_data);
6620
6621 res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
6622 if (res_irq == NULL) {
6352diff --git a/drivers/net/fec.c b/drivers/net/fec.c 6623diff --git a/drivers/net/fec.c b/drivers/net/fec.c
6353old mode 100755 6624old mode 100755
6354new mode 100644 6625new mode 100644
6355index 5af378f..c92bca0 6626index 5af378f..b74b1d9
6356--- a/drivers/net/fec.c 6627--- a/drivers/net/fec.c
6357+++ b/drivers/net/fec.c 6628+++ b/drivers/net/fec.c
6358@@ -1054,7 +1054,7 @@ static int fec_enet_mii_probe(struct net_device *ndev) 6629@@ -159,7 +159,9 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
6630 /* Pause frame feild and FIFO threshold */
6631 #define FEC_ENET_FCE (1 << 5)
6632 #define FEC_ENET_RSEM_V 0x84
6633+#define FEC_ENET_RSEM_V_TO1 0x10
6634 #define FEC_ENET_RSFL_V 16
6635+#define FEC_ENET_RSFL_V_TO1 0x20
6636 #define FEC_ENET_RAEM_V 0x8
6637 #define FEC_ENET_RAFL_V 0x8
6638 #define FEC_ENET_OPD_V 0xFFF0
6639@@ -557,28 +559,33 @@ static int fec_rx_poll(struct napi_struct *napi, int budget)
6640 goto rx_processing_done;
6641
6642 /* Check for errors. */
6643+ status ^= BD_ENET_RX_LAST;
6644 if (status & (BD_ENET_RX_LG | BD_ENET_RX_SH | BD_ENET_RX_NO |
6645- BD_ENET_RX_CR | BD_ENET_RX_OV)) {
6646+ BD_ENET_RX_CR | BD_ENET_RX_OV | BD_ENET_RX_LAST |
6647+ BD_ENET_RX_CL)) {
6648 ndev->stats.rx_errors++;
6649- if (status & (BD_ENET_RX_LG | BD_ENET_RX_SH)) {
6650- /* Frame too long or too short. */
6651- ndev->stats.rx_length_errors++;
6652- }
6653- if (status & BD_ENET_RX_NO) /* Frame alignment */
6654- ndev->stats.rx_frame_errors++;
6655- if (status & BD_ENET_RX_CR) /* CRC Error */
6656- ndev->stats.rx_crc_errors++;
6657- if (status & BD_ENET_RX_OV) /* FIFO overrun */
6658- ndev->stats.rx_fifo_errors++;
6659- }
6660
6661- /* Report late collisions as a frame error.
6662- * On this error, the BD is closed, but we don't know what we
6663- * have in the buffer. So, just drop this frame on the floor.
6664- */
6665- if (status & BD_ENET_RX_CL) {
6666- ndev->stats.rx_errors++;
6667- ndev->stats.rx_frame_errors++;
6668+ if (status & BD_ENET_RX_OV) {
6669+ /* FIFO overrun */
6670+ ndev->stats.rx_fifo_errors++;
6671+ } else {
6672+ if (status & (BD_ENET_RX_LG | BD_ENET_RX_SH
6673+ | BD_ENET_RX_LAST)) {
6674+ /* Frame too long or too short. */
6675+ ndev->stats.rx_length_errors++;
6676+ if (status & BD_ENET_RX_LAST)
6677+ dev_err(&ndev->dev,
6678+ "rcv is not +last, "
6679+ "0x%x\n", status);
6680+ }
6681+ if (status & BD_ENET_RX_CR) /* CRC Error */
6682+ ndev->stats.rx_crc_errors++;
6683+ /*
6684+ * Report late collisions as a frame error.
6685+ */
6686+ if (status & (BD_ENET_RX_NO | BD_ENET_RX_CL))
6687+ ndev->stats.rx_frame_errors++;
6688+ }
6689 goto rx_processing_done;
6690 }
6691
6692@@ -1035,9 +1042,10 @@ static int fec_enet_mii_probe(struct net_device *ndev)
6693 }
6694
6695 /* mask with MAC supported features */
6696- if (cpu_is_mx6q() || cpu_is_mx6dl())
6697- phy_dev->supported &= PHY_GBIT_FEATURES;
6698- else
6699+ if (cpu_is_mx6q() || cpu_is_mx6dl()) {
6700+ /* SUPPORTED_Asym_Pause prevents my switch from linking up */
6701+ phy_dev->supported &= PHY_GBIT_FEATURES | SUPPORTED_Pause;
6702+ } else
6703 phy_dev->supported &= PHY_BASIC_FEATURES;
6704
6705 phy_dev->advertising = phy_dev->supported;
6706@@ -1054,7 +1062,7 @@ static int fec_enet_mii_probe(struct net_device *ndev)
6359 return 0; 6707 return 0;
6360 } 6708 }
6361 6709
@@ -6364,7 +6712,7 @@ index 5af378f..c92bca0
6364 { 6712 {
6365 static struct mii_bus *fec0_mii_bus; 6713 static struct mii_bus *fec0_mii_bus;
6366 struct net_device *ndev = platform_get_drvdata(pdev); 6714 struct net_device *ndev = platform_get_drvdata(pdev);
6367@@ -1120,7 +1120,7 @@ static int fec_enet_mii_init(struct platform_device *pdev) 6715@@ -1120,7 +1128,7 @@ static int fec_enet_mii_init(struct platform_device *pdev)
6368 } 6716 }
6369 6717
6370 for (i = 0; i < PHY_MAX_ADDR; i++) 6718 for (i = 0; i < PHY_MAX_ADDR; i++)
@@ -6373,7 +6721,76 @@ index 5af378f..c92bca0
6373 6721
6374 if (mdiobus_register(fep->mii_bus)) 6722 if (mdiobus_register(fep->mii_bus))
6375 goto err_out_free_mdio_irq; 6723 goto err_out_free_mdio_irq;
6376@@ -1772,6 +1772,7 @@ fec_probe(struct platform_device *pdev) 6724@@ -1611,6 +1619,9 @@ fec_restart(struct net_device *dev, int duplex)
6725 writel(OPT_FRAME_SIZE | 0x06, fep->hwp + FEC_R_CNTRL);
6726 writel(0x0, fep->hwp + FEC_X_CNTRL);
6727 }
6728+#ifdef FEC_FTRL
6729+ writel(PKT_MAXBUF_SIZE, fep->hwp + FEC_FTRL);
6730+#endif
6731 fep->full_duplex = duplex;
6732
6733 /* Set MII speed */
6734@@ -1641,12 +1652,9 @@ fec_restart(struct net_device *dev, int duplex)
6735 * ENET pause frame has two issues as ticket TKT116501
6736 * The issues have been fixed on Rigel TO1.1 and Arik TO1.2
6737 */
6738- if ((cpu_is_mx6q() &&
6739- (mx6q_revision() >= IMX_CHIP_REVISION_1_2)) ||
6740- (cpu_is_mx6dl() &&
6741- (mx6dl_revision() >= IMX_CHIP_REVISION_1_1)))
6742+ if (cpu_is_mx6q() || (cpu_is_mx6dl()
6743+ && (mx6dl_revision() >= IMX_CHIP_REVISION_1_1)))
6744 val |= FEC_ENET_FCE;
6745-
6746 writel(val, fep->hwp + FEC_R_CNTRL);
6747 }
6748
6749@@ -1700,24 +1708,31 @@ fec_restart(struct net_device *dev, int duplex)
6750 fep->phy_dev->speed == SPEED_1000)
6751 val |= (0x1 << 5);
6752
6753- /* RX FIFO threshold setting for ENET pause frame feature
6754- * Only set the parameters after ticket TKT116501 fixed.
6755- * The issue has been fixed on Rigel TO1.1 and Arik TO1.2
6756- */
6757- if ((cpu_is_mx6q() &&
6758- (mx6q_revision() >= IMX_CHIP_REVISION_1_2)) ||
6759- (cpu_is_mx6dl() &&
6760- (mx6dl_revision() >= IMX_CHIP_REVISION_1_1))) {
6761- writel(FEC_ENET_RSEM_V, fep->hwp + FEC_R_FIFO_RSEM);
6762- writel(FEC_ENET_RSFL_V, fep->hwp + FEC_R_FIFO_RSFL);
6763+ if (cpu_is_mx6q() || cpu_is_mx6dl()) {
6764+ u32 rsem_val = 0;
6765+ /* RX FIFO threshold setting for ENET pause frame feature
6766+ * Only set the parameters after ticket TKT116501 fixed.
6767+ * The issue has been fixed on Rigel TO1.1 and Arik TO1.2
6768+ */
6769+ if (cpu_is_mx6q() || (cpu_is_mx6dl()
6770+ && (mx6dl_revision() >= IMX_CHIP_REVISION_1_1))) {
6771+ if (cpu_is_mx6q() && (mx6q_revision() < IMX_CHIP_REVISION_1_1)) {
6772+ rsem_val = FEC_ENET_RSEM_V_TO1;
6773+ } else
6774+ rsem_val = FEC_ENET_RSEM_V;
6775+ }
6776+
6777+ writel(rsem_val, fep->hwp + FEC_R_FIFO_RSEM);
6778+ if (cpu_is_mx6q() && (mx6q_revision() < IMX_CHIP_REVISION_1_1))
6779+ writel(FEC_ENET_RSFL_V_TO1, fep->hwp + FEC_R_FIFO_RSFL);
6780+ else
6781+ writel(FEC_ENET_RSFL_V, fep->hwp + FEC_R_FIFO_RSFL);
6782 writel(FEC_ENET_RAEM_V, fep->hwp + FEC_R_FIFO_RAEM);
6783 writel(FEC_ENET_RAFL_V, fep->hwp + FEC_R_FIFO_RAFL);
6784
6785 /* OPD */
6786 writel(FEC_ENET_OPD_V, fep->hwp + FEC_OPD);
6787- }
6788
6789- if (cpu_is_mx6q() || cpu_is_mx6dl()) {
6790 /* enable endian swap */
6791 val |= (0x1 << 8);
6792 /* enable ENET store and forward mode */
6793@@ -1772,6 +1787,7 @@ fec_probe(struct platform_device *pdev)
6377 struct net_device *ndev; 6794 struct net_device *ndev;
6378 int i, irq, ret = 0; 6795 int i, irq, ret = 0;
6379 struct resource *r; 6796 struct resource *r;
@@ -6381,7 +6798,7 @@ index 5af378f..c92bca0
6381 6798
6382 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 6799 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
6383 if (!r) 6800 if (!r)
6384@@ -1804,8 +1805,11 @@ fec_probe(struct platform_device *pdev) 6801@@ -1804,8 +1820,11 @@ fec_probe(struct platform_device *pdev)
6385 platform_set_drvdata(pdev, ndev); 6802 platform_set_drvdata(pdev, ndev);
6386 6803
6387 pdata = pdev->dev.platform_data; 6804 pdata = pdev->dev.platform_data;
@@ -6394,7 +6811,7 @@ index 5af378f..c92bca0
6394 6811
6395 /* This device has up to three irqs on some platforms */ 6812 /* This device has up to three irqs on some platforms */
6396 for (i = 0; i < 3; i++) { 6813 for (i = 0; i < 3; i++) {
6397@@ -1833,7 +1837,7 @@ fec_probe(struct platform_device *pdev) 6814@@ -1833,7 +1852,7 @@ fec_probe(struct platform_device *pdev)
6398 if (ret) 6815 if (ret)
6399 goto failed_init; 6816 goto failed_init;
6400 6817
@@ -6403,6 +6820,18 @@ index 5af378f..c92bca0
6403 if (ret) 6820 if (ret)
6404 goto failed_mii_init; 6821 goto failed_mii_init;
6405 6822
6823diff --git a/drivers/net/fec.h b/drivers/net/fec.h
6824index 0c26c6c..49eb060 100644
6825--- a/drivers/net/fec.h
6826+++ b/drivers/net/fec.h
6827@@ -49,6 +49,7 @@
6828 #define FEC_R_FIFO_RSEM 0x194 /* Receive FIFO section empty threshold */
6829 #define FEC_R_FIFO_RAEM 0x198 /* Receive FIFO almost empty threshold */
6830 #define FEC_R_FIFO_RAFL 0x19c /* Receive FIFO almost full threshold */
6831+#define FEC_FTRL 0x1b0 /* Frame truncation receive length*/
6832 #define FEC_MIIGSK_CFGR 0x300 /* MIIGSK Configuration reg */
6833 #define FEC_MIIGSK_ENR 0x308 /* MIIGSK Enable reg */
6834
6406diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c 6835diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
6407index 80747d2..6eafb5c 100644 6836index 80747d2..6eafb5c 100644
6408--- a/drivers/net/phy/micrel.c 6837--- a/drivers/net/phy/micrel.c
@@ -6901,3 +7330,46 @@ new mode 100644
6901diff --git a/include/linux/mfd/da9052/tsi_filter.h b/include/linux/mfd/da9052/tsi_filter.h 7330diff --git a/include/linux/mfd/da9052/tsi_filter.h b/include/linux/mfd/da9052/tsi_filter.h
6902old mode 100755 7331old mode 100755
6903new mode 100644 7332new mode 100644
7333diff --git a/localversion b/localversion
7334new file mode 100644
7335index 0000000..e02409d
7336--- /dev/null
7337+++ b/localversion
7338@@ -0,0 +1 @@
7339+-2026-geaaf30e
7340diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
7341index fd05514..45191d1 100644
7342--- a/sound/soc/codecs/sgtl5000.c
7343+++ b/sound/soc/codecs/sgtl5000.c
7344@@ -602,7 +602,7 @@ static const struct snd_kcontrol_new sgtl5000_snd_controls[] = {
7345 5, 1, 0),
7346
7347 SOC_SINGLE_TLV("Mic Volume", SGTL5000_CHIP_MIC_CTRL,
7348- 0, 4, 0, mic_gain_tlv),
7349+ 0, 3, 0, mic_gain_tlv),
7350
7351 /* Bass Enhance enable */
7352 SOC_SINGLE("Bass Enable", SGTL5000_DAP_BASS_ENHANCE,
7353@@ -1614,7 +1614,7 @@ static int sgtl5000_probe(struct snd_soc_codec *codec)
7354 SGTL5000_HP_ZCD_EN |
7355 SGTL5000_ADC_ZCD_EN);
7356
7357- snd_soc_write(codec, SGTL5000_CHIP_MIC_CTRL, 0);
7358+ snd_soc_write(codec, SGTL5000_CHIP_MIC_CTRL, 2);
7359
7360 snd_soc_write(codec, SGTL5000_CHIP_DAC_VOL, 0x6060);
7361 snd_soc_write(codec, SGTL5000_CHIP_ANA_ADC_CTRL,
7362diff --git a/tools/perf/util/include/linux/compiler.h b/tools/perf/util/include/linux/compiler.h
7363index 547628e..791f9dd 100644
7364--- a/tools/perf/util/include/linux/compiler.h
7365+++ b/tools/perf/util/include/linux/compiler.h
7366@@ -5,9 +5,7 @@
7367 #define __always_inline inline
7368 #endif
7369 #define __user
7370-#ifndef __attribute_const__
7371 #define __attribute_const__
7372-#endif
7373
7374 #define __used __attribute__((__unused__))
7375