summaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-07-22 19:41:50 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-07-22 19:42:41 +0200
commit83269248e437d15f040975e5d40dfc9ad599ab0e (patch)
tree5355dfda20e364df32ee2a1122b04ab950100fa5 /target
parentf964a806c5784f4a0144deffcfbd3c4e6e4da244 (diff)
bump kernel versions, readd sm7xx driver for 3.15.x
Diffstat (limited to 'target')
-rw-r--r--target/arm/raspberry-pi/patches/3.10.49/raspberry-pi.patch (renamed from target/arm/raspberry-pi/patches/3.10.45/raspberry-pi.patch)0
-rw-r--r--target/arm/raspberry-pi/patches/3.12.24/raspberry-pi.patch (renamed from target/arm/raspberry-pi/patches/3.12.23/raspberry-pi.patch)0
-rw-r--r--target/arm/raspberry-pi/patches/3.14.13/raspberry-pi.patch (renamed from target/arm/raspberry-pi/patches/3.14.9/raspberry-pi.patch)0
-rw-r--r--target/arm/raspberry-pi/patches/3.15.6/raspberrypi.patch (renamed from target/arm/raspberry-pi/patches/3.15.4/raspberrypi.patch)0
-rw-r--r--target/config/Config.in.kernelversion.choice22
-rw-r--r--target/config/Config.in.kernelversion.default10
-rw-r--r--target/linux/patches/3.10.49/bsd-compatibility.patch (renamed from target/linux/patches/3.10.45/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.10.49/headers-install.patch (renamed from target/linux/patches/3.10.45/headers-install.patch)0
-rw-r--r--target/linux/patches/3.10.49/mkpiggy.patch (renamed from target/linux/patches/3.10.45/mkpiggy.patch)0
-rw-r--r--target/linux/patches/3.10.49/patch-yaffs2 (renamed from target/linux/patches/3.10.45/patch-yaffs2)0
-rw-r--r--target/linux/patches/3.10.49/relocs.patch (renamed from target/linux/patches/3.10.45/relocs.patch)0
-rw-r--r--target/linux/patches/3.10.49/sgidefs.patch (renamed from target/linux/patches/3.10.45/sgidefs.patch)0
-rw-r--r--target/linux/patches/3.10.49/sortext.patch (renamed from target/linux/patches/3.10.45/sortext.patch)0
-rw-r--r--target/linux/patches/3.10.49/startup.patch (renamed from target/linux/patches/3.10.45/startup.patch)0
-rw-r--r--target/linux/patches/3.10.49/tcp-fastopen.patch (renamed from target/linux/patches/3.10.45/tcp-fastopen.patch)0
-rw-r--r--target/linux/patches/3.12.24/bsd-compatibility.patch (renamed from target/linux/patches/3.12.23/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.12.24/cleankernel.patch (renamed from target/linux/patches/3.12.23/cleankernel.patch)0
-rw-r--r--target/linux/patches/3.12.24/defaults.patch (renamed from target/linux/patches/3.12.23/defaults.patch)0
-rw-r--r--target/linux/patches/3.12.24/disable-netfilter.patch (renamed from target/linux/patches/3.12.23/disable-netfilter.patch)0
-rw-r--r--target/linux/patches/3.12.24/export-symbol-for-exmap.patch (renamed from target/linux/patches/3.12.23/export-symbol-for-exmap.patch)0
-rw-r--r--target/linux/patches/3.12.24/gemalto.patch (renamed from target/linux/patches/3.12.23/gemalto.patch)0
-rw-r--r--target/linux/patches/3.12.24/lemote-rfkill.patch (renamed from target/linux/patches/3.12.23/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.12.24/microblaze-ethernet.patch (renamed from target/linux/patches/3.12.23/microblaze-ethernet.patch)0
-rw-r--r--target/linux/patches/3.12.24/microblaze-setup.patch (renamed from target/linux/patches/3.12.23/microblaze-setup.patch)0
-rw-r--r--target/linux/patches/3.12.24/mips-lzo-fix.patch (renamed from target/linux/patches/3.12.23/mips-lzo-fix.patch)0
-rw-r--r--target/linux/patches/3.12.24/mkpiggy.patch (renamed from target/linux/patches/3.12.23/mkpiggy.patch)0
-rw-r--r--target/linux/patches/3.12.24/mtd-rootfs.patch (renamed from target/linux/patches/3.12.23/mtd-rootfs.patch)0
-rw-r--r--target/linux/patches/3.12.24/non-static.patch (renamed from target/linux/patches/3.12.23/non-static.patch)0
-rw-r--r--target/linux/patches/3.12.24/patch-yaffs2 (renamed from target/linux/patches/3.12.23/patch-yaffs2)0
-rw-r--r--target/linux/patches/3.12.24/ppc64-missing-zlib.patch (renamed from target/linux/patches/3.12.23/ppc64-missing-zlib.patch)0
-rw-r--r--target/linux/patches/3.12.24/relocs.patch (renamed from target/linux/patches/3.12.23/relocs.patch)0
-rw-r--r--target/linux/patches/3.12.24/sgidefs.patch (renamed from target/linux/patches/3.12.23/sgidefs.patch)0
-rw-r--r--target/linux/patches/3.12.24/sortext.patch (renamed from target/linux/patches/3.12.23/sortext.patch)0
-rw-r--r--target/linux/patches/3.12.24/startup.patch (renamed from target/linux/patches/3.12.23/startup.patch)0
-rw-r--r--target/linux/patches/3.12.24/tcp-fastopen.patch (renamed from target/linux/patches/3.12.23/tcp-fastopen.patch)0
-rw-r--r--target/linux/patches/3.12.24/usb-defaults-off.patch (renamed from target/linux/patches/3.12.23/usb-defaults-off.patch)0
-rw-r--r--target/linux/patches/3.12.24/vga-cons-default-off.patch (renamed from target/linux/patches/3.12.23/vga-cons-default-off.patch)0
-rw-r--r--target/linux/patches/3.12.24/wlan-cf.patch (renamed from target/linux/patches/3.12.23/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.12.24/xargs.patch (renamed from target/linux/patches/3.12.23/xargs.patch)0
-rw-r--r--target/linux/patches/3.12.24/zlib-inflate.patch (renamed from target/linux/patches/3.12.23/zlib-inflate.patch)0
-rw-r--r--target/linux/patches/3.14.13/bsd-compatibility.patch (renamed from target/linux/patches/3.14.9/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.14.13/cleankernel.patch (renamed from target/linux/patches/3.14.9/cleankernel.patch)0
-rw-r--r--target/linux/patches/3.14.13/defaults.patch (renamed from target/linux/patches/3.14.9/defaults.patch)0
-rw-r--r--target/linux/patches/3.14.13/disable-netfilter.patch (renamed from target/linux/patches/3.14.9/disable-netfilter.patch)0
-rw-r--r--target/linux/patches/3.14.13/export-symbol-for-exmap.patch (renamed from target/linux/patches/3.14.9/export-symbol-for-exmap.patch)0
-rw-r--r--target/linux/patches/3.14.13/gemalto.patch (renamed from target/linux/patches/3.14.9/gemalto.patch)0
-rw-r--r--target/linux/patches/3.14.13/initramfs-nosizelimit.patch (renamed from target/linux/patches/3.14.9/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/3.14.13/lemote-rfkill.patch (renamed from target/linux/patches/3.14.9/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.14.13/microblaze-axi.patch (renamed from target/linux/patches/3.14.9/microblaze-axi.patch)0
-rw-r--r--target/linux/patches/3.14.13/microblaze-ethernet.patch (renamed from target/linux/patches/3.14.9/microblaze-ethernet.patch)0
-rw-r--r--target/linux/patches/3.14.13/mkpiggy.patch (renamed from target/linux/patches/3.14.9/mkpiggy.patch)0
-rw-r--r--target/linux/patches/3.14.13/mtd-rootfs.patch (renamed from target/linux/patches/3.14.9/mtd-rootfs.patch)0
-rw-r--r--target/linux/patches/3.14.13/nfsv3-tcp.patch (renamed from target/linux/patches/3.14.9/nfsv3-tcp.patch)0
-rw-r--r--target/linux/patches/3.14.13/non-static.patch (renamed from target/linux/patches/3.14.9/non-static.patch)0
-rw-r--r--target/linux/patches/3.14.13/patch-fblogo (renamed from target/linux/patches/3.14.9/patch-fblogo)0
-rw-r--r--target/linux/patches/3.14.13/patch-grsec (renamed from target/linux/patches/3.14.9/patch-grsec)0
-rw-r--r--target/linux/patches/3.14.13/patch-mptcp (renamed from target/linux/patches/3.14.9/patch-mptcp)0
-rw-r--r--target/linux/patches/3.14.13/patch-yaffs2 (renamed from target/linux/patches/3.14.9/patch-yaffs2)0
-rw-r--r--target/linux/patches/3.14.13/ppc64-missing-zlib.patch (renamed from target/linux/patches/3.14.9/ppc64-missing-zlib.patch)0
-rw-r--r--target/linux/patches/3.14.13/regmap-boolean.patch (renamed from target/linux/patches/3.14.9/regmap-boolean.patch)0
-rw-r--r--target/linux/patches/3.14.13/relocs.patch (renamed from target/linux/patches/3.14.9/relocs.patch)0
-rw-r--r--target/linux/patches/3.14.13/sgidefs.patch (renamed from target/linux/patches/3.14.9/sgidefs.patch)0
-rw-r--r--target/linux/patches/3.14.13/sortext.patch (renamed from target/linux/patches/3.14.9/sortext.patch)0
-rw-r--r--target/linux/patches/3.14.13/startup.patch (renamed from target/linux/patches/3.14.9/startup.patch)0
-rw-r--r--target/linux/patches/3.14.13/tcp-fastopen.patch (renamed from target/linux/patches/3.14.9/tcp-fastopen.patch)0
-rw-r--r--target/linux/patches/3.14.13/wlan-cf.patch (renamed from target/linux/patches/3.14.9/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.14.13/xargs.patch (renamed from target/linux/patches/3.14.9/xargs.patch)0
-rw-r--r--target/linux/patches/3.14.13/zlib-inflate.patch (renamed from target/linux/patches/3.14.9/zlib-inflate.patch)0
-rw-r--r--target/linux/patches/3.15.6/bsd-compatibility.patch (renamed from target/linux/patches/3.15.4/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.15.6/cleankernel.patch (renamed from target/linux/patches/3.15.4/cleankernel.patch)0
-rw-r--r--target/linux/patches/3.15.6/defaults.patch (renamed from target/linux/patches/3.15.4/defaults.patch)0
-rw-r--r--target/linux/patches/3.15.6/disable-netfilter.patch (renamed from target/linux/patches/3.15.4/disable-netfilter.patch)0
-rw-r--r--target/linux/patches/3.15.6/export-symbol-for-exmap.patch (renamed from target/linux/patches/3.15.4/export-symbol-for-exmap.patch)0
-rw-r--r--target/linux/patches/3.15.6/gemalto.patch (renamed from target/linux/patches/3.15.4/gemalto.patch)0
-rw-r--r--target/linux/patches/3.15.6/initramfs-nosizelimit.patch (renamed from target/linux/patches/3.15.4/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/3.15.6/lemote-rfkill.patch (renamed from target/linux/patches/3.15.4/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.15.6/lz4.patch (renamed from target/linux/patches/3.15.4/lz4.patch)0
-rw-r--r--target/linux/patches/3.15.6/microblaze-axi.patch (renamed from target/linux/patches/3.15.4/microblaze-axi.patch)0
-rw-r--r--target/linux/patches/3.15.6/microblaze-ethernet.patch (renamed from target/linux/patches/3.15.4/microblaze-ethernet.patch)0
-rw-r--r--target/linux/patches/3.15.6/mkpiggy.patch (renamed from target/linux/patches/3.15.4/mkpiggy.patch)0
-rw-r--r--target/linux/patches/3.15.6/mtd-rootfs.patch (renamed from target/linux/patches/3.15.4/mtd-rootfs.patch)0
-rw-r--r--target/linux/patches/3.15.6/nfsv3-tcp.patch (renamed from target/linux/patches/3.15.4/nfsv3-tcp.patch)0
-rw-r--r--target/linux/patches/3.15.6/non-static.patch (renamed from target/linux/patches/3.15.4/non-static.patch)0
-rw-r--r--target/linux/patches/3.15.6/patch-fblogo (renamed from target/linux/patches/3.15.4/patch-fblogo)0
-rw-r--r--target/linux/patches/3.15.6/patch-yaffs2 (renamed from target/linux/patches/3.15.4/patch-yaffs2)0
-rw-r--r--target/linux/patches/3.15.6/ppc64-missing-zlib.patch (renamed from target/linux/patches/3.15.4/ppc64-missing-zlib.patch)0
-rw-r--r--target/linux/patches/3.15.6/regmap-boolean.patch (renamed from target/linux/patches/3.15.4/regmap-boolean.patch)0
-rw-r--r--target/linux/patches/3.15.6/relocs.patch (renamed from target/linux/patches/3.15.4/relocs.patch)0
-rw-r--r--target/linux/patches/3.15.6/sgidefs.patch (renamed from target/linux/patches/3.15.4/sgidefs.patch)0
-rw-r--r--target/linux/patches/3.15.6/sortext.patch (renamed from target/linux/patches/3.15.4/sortext.patch)0
-rw-r--r--target/linux/patches/3.15.6/startup.patch (renamed from target/linux/patches/3.15.4/startup.patch)0
-rw-r--r--target/linux/patches/3.15.6/tcp-fastopen.patch (renamed from target/linux/patches/3.15.4/tcp-fastopen.patch)0
-rw-r--r--target/linux/patches/3.15.6/wlan-cf.patch (renamed from target/linux/patches/3.15.4/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.15.6/xargs.patch (renamed from target/linux/patches/3.15.4/xargs.patch)0
-rw-r--r--target/linux/patches/3.4.99/aufs2.patch (renamed from target/linux/patches/3.4.95/aufs2.patch)0
-rw-r--r--target/linux/patches/3.4.99/bsd-compatibility.patch (renamed from target/linux/patches/3.4.95/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.4.99/defaults.patch (renamed from target/linux/patches/3.4.95/defaults.patch)0
-rw-r--r--target/linux/patches/3.4.99/gemalto.patch (renamed from target/linux/patches/3.4.95/gemalto.patch)0
-rw-r--r--target/linux/patches/3.4.99/lemote-rfkill.patch (renamed from target/linux/patches/3.4.95/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.4.99/linux-gcc-check.patch (renamed from target/linux/patches/3.4.95/linux-gcc-check.patch)0
-rw-r--r--target/linux/patches/3.4.99/mips-error.patch (renamed from target/linux/patches/3.4.95/mips-error.patch)0
-rw-r--r--target/linux/patches/3.4.99/mkpiggy.patch (renamed from target/linux/patches/3.4.95/mkpiggy.patch)0
-rw-r--r--target/linux/patches/3.4.99/module-alloc-size-check.patch (renamed from target/linux/patches/3.4.95/module-alloc-size-check.patch)0
-rw-r--r--target/linux/patches/3.4.99/non-static.patch (renamed from target/linux/patches/3.4.95/non-static.patch)0
-rw-r--r--target/linux/patches/3.4.99/patch-yaffs2 (renamed from target/linux/patches/3.4.95/patch-yaffs2)0
-rw-r--r--target/linux/patches/3.4.99/relocs.patch (renamed from target/linux/patches/3.4.95/relocs.patch)0
-rw-r--r--target/linux/patches/3.4.99/sparc-include.patch (renamed from target/linux/patches/3.4.95/sparc-include.patch)0
-rw-r--r--target/linux/patches/3.4.99/startup.patch (renamed from target/linux/patches/3.4.95/startup.patch)0
-rw-r--r--target/linux/patches/3.4.99/usb-defaults-off.patch (renamed from target/linux/patches/3.4.95/usb-defaults-off.patch)0
-rw-r--r--target/linux/patches/3.4.99/vga-cons-default-off.patch (renamed from target/linux/patches/3.4.95/vga-cons-default-off.patch)0
-rw-r--r--target/linux/patches/3.4.99/wlan-cf.patch (renamed from target/linux/patches/3.4.95/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.4.99/zlib-inflate.patch (renamed from target/linux/patches/3.4.95/zlib-inflate.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0001-mtd-add-rb4xx-nand-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0001-mtd-add-rb4xx-nand-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0002-phy-add-ethtool-ioctl-support-used-by-ag71xx-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0002-phy-add-ethtool-ioctl-support-used-by-ag71xx-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0003-net-add-ag71xx-mac-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0003-net-add-ag71xx-mac-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0004-drivers-link-SPI-drivers-before-MTD-drivers.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0004-drivers-link-SPI-drivers-before-MTD-drivers.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0005-spi-add-various-flags-to-spi_transfer-and-spi_messag.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0005-spi-add-various-flags-to-spi_transfer-and-spi_messag.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0006-spi-add-rb4xx-SPI-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0006-spi-add-rb4xx-SPI-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0007-spi-add-rb4xx-cpld-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0007-spi-add-rb4xx-cpld-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0008-gpio-add-GPIO-latch-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0008-gpio-add-GPIO-latch-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0009-spi-export-spi_bitbang_bufs-function.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0009-spi-export-spi_bitbang_bufs-function.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0010-spi-add-type-field-to-spi_transfer-struct.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0010-spi-add-type-field-to-spi_transfer-struct.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0011-mtd-m25p80-set-SPI-transfer-type.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0011-mtd-m25p80-set-SPI-transfer-type.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0013-net-add-swconfig-support.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0013-net-add-swconfig-support.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0014-phy-add-detach-callback-to-struct-phy_driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0014-phy-add-detach-callback-to-struct-phy_driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0015-phy-add-ar8216-PHY-support.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0015-phy-add-ar8216-PHY-support.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0016-phy-mdio-bitbang-ignore-TA-value.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0016-phy-mdio-bitbang-ignore-TA-value.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0017-MIPS-ath79-fix-maximum-timeout.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0017-MIPS-ath79-fix-maximum-timeout.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0019-MIPS-ath79-process-board-cmdline-option.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0019-MIPS-ath79-process-board-cmdline-option.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0020-spi-ath79-add-fast-flash-read-support.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0020-spi-ath79-add-fast-flash-read-support.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0021-phy-add-mdio-boardinfo.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0021-phy-add-mdio-boardinfo.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0022-mips-ath79-add-ath79-ethernet-driver.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0022-mips-ath79-add-ath79-ethernet-driver.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0023-MIPS-ath79-add-Mikrotik-rb4xx-device-support.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0023-MIPS-ath79-add-Mikrotik-rb4xx-device-support.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0024-various-fixups-for-Werror.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0024-various-fixups-for-Werror.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0025-rb4xx_nand-add-partition-for-cfgfs.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0025-rb4xx_nand-add-partition-for-cfgfs.patch)0
-rw-r--r--target/mips/mikrotik-rb4xx/patches/3.14.13/0026-various-fixups-for-ath5k-fixing-system-freezes.patch (renamed from target/mips/mikrotik-rb4xx/patches/3.14.9/0026-various-fixups-for-ath5k-fixing-system-freezes.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.10.49/rb532-cfgfs.patch (renamed from target/mips/mikrotik-rb532/patches/3.10.45/rb532-cfgfs.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.10.49/rb532-pci.patch (renamed from target/mips/mikrotik-rb532/patches/3.10.45/rb532-pci.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.12.24/rb532-cfgfs.patch (renamed from target/mips/mikrotik-rb532/patches/3.12.23/rb532-cfgfs.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.12.24/rb532-pci.patch (renamed from target/mips/mikrotik-rb532/patches/3.12.23/rb532-pci.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.14.13/rb532-cfgfs.patch (renamed from target/mips/mikrotik-rb532/patches/3.14.9/rb532-cfgfs.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.14.13/rb532-pci.patch (renamed from target/mips/mikrotik-rb532/patches/3.14.9/rb532-pci.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.15.6/rb532-cfgfs.patch (renamed from target/mips/mikrotik-rb532/patches/3.15.4/rb532-cfgfs.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.15.6/rb532-serial.patch (renamed from target/mips/mikrotik-rb532/patches/3.15.4/rb532-serial.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.4.99/rb532-cfgfs.patch (renamed from target/mips/mikrotik-rb532/patches/3.4.95/rb532-cfgfs.patch)0
-rw-r--r--target/mips/mikrotik-rb532/patches/3.4.99/rb532-pci.patch (renamed from target/mips/mikrotik-rb532/patches/3.4.95/rb532-pci.patch)0
-rw-r--r--target/mips64/lemote-yeelong/patches/3.15.6/sm7xx-fb.patch1871
149 files changed, 1887 insertions, 16 deletions
diff --git a/target/arm/raspberry-pi/patches/3.10.45/raspberry-pi.patch b/target/arm/raspberry-pi/patches/3.10.49/raspberry-pi.patch
index c5d39e244..c5d39e244 100644
--- a/target/arm/raspberry-pi/patches/3.10.45/raspberry-pi.patch
+++ b/target/arm/raspberry-pi/patches/3.10.49/raspberry-pi.patch
diff --git a/target/arm/raspberry-pi/patches/3.12.23/raspberry-pi.patch b/target/arm/raspberry-pi/patches/3.12.24/raspberry-pi.patch
index c5e93d3fb..c5e93d3fb 100644
--- a/target/arm/raspberry-pi/patches/3.12.23/raspberry-pi.patch
+++ b/target/arm/raspberry-pi/patches/3.12.24/raspberry-pi.patch
diff --git a/target/arm/raspberry-pi/patches/3.14.9/raspberry-pi.patch b/target/arm/raspberry-pi/patches/3.14.13/raspberry-pi.patch
index 4535d121c..4535d121c 100644
--- a/target/arm/raspberry-pi/patches/3.14.9/raspberry-pi.patch
+++ b/target/arm/raspberry-pi/patches/3.14.13/raspberry-pi.patch
diff --git a/target/arm/raspberry-pi/patches/3.15.4/raspberrypi.patch b/target/arm/raspberry-pi/patches/3.15.6/raspberrypi.patch
index b075978cf..b075978cf 100644
--- a/target/arm/raspberry-pi/patches/3.15.4/raspberrypi.patch
+++ b/target/arm/raspberry-pi/patches/3.15.6/raspberrypi.patch
diff --git a/target/config/Config.in.kernelversion.choice b/target/config/Config.in.kernelversion.choice
index 9d53470a4..9a10420a4 100644
--- a/target/config/Config.in.kernelversion.choice
+++ b/target/config/Config.in.kernelversion.choice
@@ -4,36 +4,36 @@
choice
prompt "Kernel Version"
depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_SYSTEM && ADK_TARGET_KERNEL_CUSTOMISING
-default ADK_KERNEL_VERSION_3_15_4
+default ADK_KERNEL_VERSION_3_15_6
-config ADK_KERNEL_VERSION_3_15_4
- prompt "3.15.4"
+config ADK_KERNEL_VERSION_3_15_6
+ prompt "3.15.6"
depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
boolean
select ADK_KERNEL_VERSION_3_15
-config ADK_KERNEL_VERSION_3_14_9
- prompt "3.14.9"
+config ADK_KERNEL_VERSION_3_14_13
+ prompt "3.14.13"
depends on !ADK_TARGET_SYSTEM_CUBOX_I
boolean
select ADK_KERNEL_VERSION_3_14
-config ADK_KERNEL_VERSION_3_12_23
- prompt "3.12.23"
+config ADK_KERNEL_VERSION_3_12_24
+ prompt "3.12.24"
depends on !ADK_TARGET_SYSTEM_CUBOX_I
depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
boolean
select ADK_KERNEL_VERSION_3_12
-config ADK_KERNEL_VERSION_3_10_45
- prompt "3.10.45"
+config ADK_KERNEL_VERSION_3_10_49
+ prompt "3.10.49"
depends on !ADK_TARGET_SYSTEM_CUBOX_I
depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
boolean
select ADK_KERNEL_VERSION_3_10
-config ADK_KERNEL_VERSION_3_4_95
- prompt "3.4.95"
+config ADK_KERNEL_VERSION_3_4_99
+ prompt "3.4.99"
depends on !ADK_TARGET_SYSTEM_RASPBERRY_PI
depends on !ADK_TARGET_SYSTEM_CUBOX_I
depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
diff --git a/target/config/Config.in.kernelversion.default b/target/config/Config.in.kernelversion.default
index 325c4951d..bf68c2ac2 100644
--- a/target/config/Config.in.kernelversion.default
+++ b/target/config/Config.in.kernelversion.default
@@ -18,10 +18,10 @@ config ADK_KERNEL_VERSION_3_4
config ADK_KERNEL_VERSION
string
- default "3.15.4" if ADK_KERNEL_VERSION_3_15_4
- default "3.14.9" if ADK_KERNEL_VERSION_3_14_9
- default "3.12.23" if ADK_KERNEL_VERSION_3_12_23
- default "3.10.45" if ADK_KERNEL_VERSION_3_10_45
- default "3.4.95" if ADK_KERNEL_VERSION_3_4_95
+ default "3.15.6" if ADK_KERNEL_VERSION_3_15_6
+ default "3.14.13" if ADK_KERNEL_VERSION_3_14_13
+ default "3.12.24" if ADK_KERNEL_VERSION_3_12_24
+ default "3.10.49" if ADK_KERNEL_VERSION_3_10_49
+ default "3.4.99" if ADK_KERNEL_VERSION_3_4_99
help
diff --git a/target/linux/patches/3.10.45/bsd-compatibility.patch b/target/linux/patches/3.10.49/bsd-compatibility.patch
index b954b658f..b954b658f 100644
--- a/target/linux/patches/3.10.45/bsd-compatibility.patch
+++ b/target/linux/patches/3.10.49/bsd-compatibility.patch
diff --git a/target/linux/patches/3.10.45/headers-install.patch b/target/linux/patches/3.10.49/headers-install.patch
index 46dc9fe13..46dc9fe13 100644
--- a/target/linux/patches/3.10.45/headers-install.patch
+++ b/target/linux/patches/3.10.49/headers-install.patch
diff --git a/target/linux/patches/3.10.45/mkpiggy.patch b/target/linux/patches/3.10.49/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/target/linux/patches/3.10.45/mkpiggy.patch
+++ b/target/linux/patches/3.10.49/mkpiggy.patch
diff --git a/target/linux/patches/3.10.45/patch-yaffs2 b/target/linux/patches/3.10.49/patch-yaffs2
index 172629530..172629530 100644
--- a/target/linux/patches/3.10.45/patch-yaffs2
+++ b/target/linux/patches/3.10.49/patch-yaffs2
diff --git a/target/linux/patches/3.10.45/relocs.patch b/target/linux/patches/3.10.49/relocs.patch
index 649b9e73e..649b9e73e 100644
--- a/target/linux/patches/3.10.45/relocs.patch
+++ b/target/linux/patches/3.10.49/relocs.patch
diff --git a/target/linux/patches/3.10.45/sgidefs.patch b/target/linux/patches/3.10.49/sgidefs.patch
index f00a284d9..f00a284d9 100644
--- a/target/linux/patches/3.10.45/sgidefs.patch
+++ b/target/linux/patches/3.10.49/sgidefs.patch
diff --git a/target/linux/patches/3.10.45/sortext.patch b/target/linux/patches/3.10.49/sortext.patch
index 65bbbb64b..65bbbb64b 100644
--- a/target/linux/patches/3.10.45/sortext.patch
+++ b/target/linux/patches/3.10.49/sortext.patch
diff --git a/target/linux/patches/3.10.45/startup.patch b/target/linux/patches/3.10.49/startup.patch
index 3ebc5db1e..3ebc5db1e 100644
--- a/target/linux/patches/3.10.45/startup.patch
+++ b/target/linux/patches/3.10.49/startup.patch
diff --git a/target/linux/patches/3.10.45/tcp-fastopen.patch b/target/linux/patches/3.10.49/tcp-fastopen.patch
index c0bddbc4f..c0bddbc4f 100644
--- a/target/linux/patches/3.10.45/tcp-fastopen.patch
+++ b/target/linux/patches/3.10.49/tcp-fastopen.patch
diff --git a/target/linux/patches/3.12.23/bsd-compatibility.patch b/target/linux/patches/3.12.24/bsd-compatibility.patch
index b954b658f..b954b658f 100644
--- a/target/linux/patches/3.12.23/bsd-compatibility.patch
+++ b/target/linux/patches/3.12.24/bsd-compatibility.patch
diff --git a/target/linux/patches/3.12.23/cleankernel.patch b/target/linux/patches/3.12.24/cleankernel.patch
index d8c055dc3..d8c055dc3 100644
--- a/target/linux/patches/3.12.23/cleankernel.patch
+++ b/target/linux/patches/3.12.24/cleankernel.patch
diff --git a/target/linux/patches/3.12.23/defaults.patch b/target/linux/patches/3.12.24/defaults.patch
index 6cdca084e..6cdca084e 100644
--- a/target/linux/patches/3.12.23/defaults.patch
+++ b/target/linux/patches/3.12.24/defaults.patch
diff --git a/target/linux/patches/3.12.23/disable-netfilter.patch b/target/linux/patches/3.12.24/disable-netfilter.patch
index 7b1ca013a..7b1ca013a 100644
--- a/target/linux/patches/3.12.23/disable-netfilter.patch
+++ b/target/linux/patches/3.12.24/disable-netfilter.patch
diff --git a/target/linux/patches/3.12.23/export-symbol-for-exmap.patch b/target/linux/patches/3.12.24/export-symbol-for-exmap.patch
index 4f0fc8449..4f0fc8449 100644
--- a/target/linux/patches/3.12.23/export-symbol-for-exmap.patch
+++ b/target/linux/patches/3.12.24/export-symbol-for-exmap.patch
diff --git a/target/linux/patches/3.12.23/gemalto.patch b/target/linux/patches/3.12.24/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.12.23/gemalto.patch
+++ b/target/linux/patches/3.12.24/gemalto.patch
diff --git a/target/linux/patches/3.12.23/lemote-rfkill.patch b/target/linux/patches/3.12.24/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.12.23/lemote-rfkill.patch
+++ b/target/linux/patches/3.12.24/lemote-rfkill.patch
diff --git a/target/linux/patches/3.12.23/microblaze-ethernet.patch b/target/linux/patches/3.12.24/microblaze-ethernet.patch
index 742ab477e..742ab477e 100644
--- a/target/linux/patches/3.12.23/microblaze-ethernet.patch
+++ b/target/linux/patches/3.12.24/microblaze-ethernet.patch
diff --git a/target/linux/patches/3.12.23/microblaze-setup.patch b/target/linux/patches/3.12.24/microblaze-setup.patch
index 43815f274..43815f274 100644
--- a/target/linux/patches/3.12.23/microblaze-setup.patch
+++ b/target/linux/patches/3.12.24/microblaze-setup.patch
diff --git a/target/linux/patches/3.12.23/mips-lzo-fix.patch b/target/linux/patches/3.12.24/mips-lzo-fix.patch
index 0740bdc6a..0740bdc6a 100644
--- a/target/linux/patches/3.12.23/mips-lzo-fix.patch
+++ b/target/linux/patches/3.12.24/mips-lzo-fix.patch
diff --git a/target/linux/patches/3.12.23/mkpiggy.patch b/target/linux/patches/3.12.24/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/target/linux/patches/3.12.23/mkpiggy.patch
+++ b/target/linux/patches/3.12.24/mkpiggy.patch
diff --git a/target/linux/patches/3.12.23/mtd-rootfs.patch b/target/linux/patches/3.12.24/mtd-rootfs.patch
index 775d5fc80..775d5fc80 100644
--- a/target/linux/patches/3.12.23/mtd-rootfs.patch
+++ b/target/linux/patches/3.12.24/mtd-rootfs.patch
diff --git a/target/linux/patches/3.12.23/non-static.patch b/target/linux/patches/3.12.24/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.12.23/non-static.patch
+++ b/target/linux/patches/3.12.24/non-static.patch
diff --git a/target/linux/patches/3.12.23/patch-yaffs2 b/target/linux/patches/3.12.24/patch-yaffs2
index 306814439..306814439 100644
--- a/target/linux/patches/3.12.23/patch-yaffs2
+++ b/target/linux/patches/3.12.24/patch-yaffs2
diff --git a/target/linux/patches/3.12.23/ppc64-missing-zlib.patch b/target/linux/patches/3.12.24/ppc64-missing-zlib.patch
index c6e0616be..c6e0616be 100644
--- a/target/linux/patches/3.12.23/ppc64-missing-zlib.patch
+++ b/target/linux/patches/3.12.24/ppc64-missing-zlib.patch
diff --git a/target/linux/patches/3.12.23/relocs.patch b/target/linux/patches/3.12.24/relocs.patch
index 649b9e73e..649b9e73e 100644
--- a/target/linux/patches/3.12.23/relocs.patch
+++ b/target/linux/patches/3.12.24/relocs.patch
diff --git a/target/linux/patches/3.12.23/sgidefs.patch b/target/linux/patches/3.12.24/sgidefs.patch
index f00a284d9..f00a284d9 100644
--- a/target/linux/patches/3.12.23/sgidefs.patch
+++ b/target/linux/patches/3.12.24/sgidefs.patch
diff --git a/target/linux/patches/3.12.23/sortext.patch b/target/linux/patches/3.12.24/sortext.patch
index 8fd4e1d6b..8fd4e1d6b 100644
--- a/target/linux/patches/3.12.23/sortext.patch
+++ b/target/linux/patches/3.12.24/sortext.patch
diff --git a/target/linux/patches/3.12.23/startup.patch b/target/linux/patches/3.12.24/startup.patch
index 4cd477da1..4cd477da1 100644
--- a/target/linux/patches/3.12.23/startup.patch
+++ b/target/linux/patches/3.12.24/startup.patch
diff --git a/target/linux/patches/3.12.23/tcp-fastopen.patch b/target/linux/patches/3.12.24/tcp-fastopen.patch
index c1ff7209c..c1ff7209c 100644
--- a/target/linux/patches/3.12.23/tcp-fastopen.patch
+++ b/target/linux/patches/3.12.24/tcp-fastopen.patch
diff --git a/target/linux/patches/3.12.23/usb-defaults-off.patch b/target/linux/patches/3.12.24/usb-defaults-off.patch
index 54dff2bd4..54dff2bd4 100644
--- a/target/linux/patches/3.12.23/usb-defaults-off.patch
+++ b/target/linux/patches/3.12.24/usb-defaults-off.patch
diff --git a/target/linux/patches/3.12.23/vga-cons-default-off.patch b/target/linux/patches/3.12.24/vga-cons-default-off.patch
index 08a57f783..08a57f783 100644
--- a/target/linux/patches/3.12.23/vga-cons-default-off.patch
+++ b/target/linux/patches/3.12.24/vga-cons-default-off.patch
diff --git a/target/linux/patches/3.12.23/wlan-cf.patch b/target/linux/patches/3.12.24/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.12.23/wlan-cf.patch
+++ b/target/linux/patches/3.12.24/wlan-cf.patch
diff --git a/target/linux/patches/3.12.23/xargs.patch b/target/linux/patches/3.12.24/xargs.patch
index 2c7b3df59..2c7b3df59 100644
--- a/target/linux/patches/3.12.23/xargs.patch
+++ b/target/linux/patches/3.12.24/xargs.patch
diff --git a/target/linux/patches/3.12.23/zlib-inflate.patch b/target/linux/patches/3.12.24/zlib-inflate.patch
index 58e1f6d21..58e1f6d21 100644
--- a/target/linux/patches/3.12.23/zlib-inflate.patch
+++ b/target/linux/patches/3.12.24/zlib-inflate.patch
diff --git a/target/linux/patches/3.14.9/bsd-compatibility.patch b/target/linux/patches/3.14.13/bsd-compatibility.patch
index b954b658f..b954b658f 100644
--- a/target/linux/patches/3.14.9/bsd-compatibility.patch
+++ b/target/linux/patches/3.14.13/bsd-compatibility.patch
diff --git a/target/linux/patches/3.14.9/cleankernel.patch b/target/linux/patches/3.14.13/cleankernel.patch
index d8c055dc3..d8c055dc3 100644
--- a/target/linux/patches/3.14.9/cleankernel.patch
+++ b/target/linux/patches/3.14.13/cleankernel.patch
diff --git a/target/linux/patches/3.14.9/defaults.patch b/target/linux/patches/3.14.13/defaults.patch
index f071fd1dd..f071fd1dd 100644
--- a/target/linux/patches/3.14.9/defaults.patch
+++ b/target/linux/patches/3.14.13/defaults.patch
diff --git a/target/linux/patches/3.14.9/disable-netfilter.patch b/target/linux/patches/3.14.13/disable-netfilter.patch
index 7b1ca013a..7b1ca013a 100644
--- a/target/linux/patches/3.14.9/disable-netfilter.patch
+++ b/target/linux/patches/3.14.13/disable-netfilter.patch
diff --git a/target/linux/patches/3.14.9/export-symbol-for-exmap.patch b/target/linux/patches/3.14.13/export-symbol-for-exmap.patch
index 4f0fc8449..4f0fc8449 100644
--- a/target/linux/patches/3.14.9/export-symbol-for-exmap.patch
+++ b/target/linux/patches/3.14.13/export-symbol-for-exmap.patch
diff --git a/target/linux/patches/3.14.9/gemalto.patch b/target/linux/patches/3.14.13/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.14.9/gemalto.patch
+++ b/target/linux/patches/3.14.13/gemalto.patch
diff --git a/target/linux/patches/3.14.9/initramfs-nosizelimit.patch b/target/linux/patches/3.14.13/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/3.14.9/initramfs-nosizelimit.patch
+++ b/target/linux/patches/3.14.13/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/3.14.9/lemote-rfkill.patch b/target/linux/patches/3.14.13/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.14.9/lemote-rfkill.patch
+++ b/target/linux/patches/3.14.13/lemote-rfkill.patch
diff --git a/target/linux/patches/3.14.9/microblaze-axi.patch b/target/linux/patches/3.14.13/microblaze-axi.patch
index 1a4b17d8c..1a4b17d8c 100644
--- a/target/linux/patches/3.14.9/microblaze-axi.patch
+++ b/target/linux/patches/3.14.13/microblaze-axi.patch
diff --git a/target/linux/patches/3.14.9/microblaze-ethernet.patch b/target/linux/patches/3.14.13/microblaze-ethernet.patch
index 742ab477e..742ab477e 100644
--- a/target/linux/patches/3.14.9/microblaze-ethernet.patch
+++ b/target/linux/patches/3.14.13/microblaze-ethernet.patch
diff --git a/target/linux/patches/3.14.9/mkpiggy.patch b/target/linux/patches/3.14.13/mkpiggy.patch
index 751678b74..751678b74 100644
--- a/target/linux/patches/3.14.9/mkpiggy.patch
+++ b/target/linux/patches/3.14.13/mkpiggy.patch
diff --git a/target/linux/patches/3.14.9/mtd-rootfs.patch b/target/linux/patches/3.14.13/mtd-rootfs.patch
index 775d5fc80..775d5fc80 100644
--- a/target/linux/patches/3.14.9/mtd-rootfs.patch
+++ b/target/linux/patches/3.14.13/mtd-rootfs.patch
diff --git a/target/linux/patches/3.14.9/nfsv3-tcp.patch b/target/linux/patches/3.14.13/nfsv3-tcp.patch
index 68ed95b08..68ed95b08 100644
--- a/target/linux/patches/3.14.9/nfsv3-tcp.patch
+++ b/target/linux/patches/3.14.13/nfsv3-tcp.patch
diff --git a/target/linux/patches/3.14.9/non-static.patch b/target/linux/patches/3.14.13/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.14.9/non-static.patch
+++ b/target/linux/patches/3.14.13/non-static.patch
diff --git a/target/linux/patches/3.14.9/patch-fblogo b/target/linux/patches/3.14.13/patch-fblogo
index cbbb4216f..cbbb4216f 100644
--- a/target/linux/patches/3.14.9/patch-fblogo
+++ b/target/linux/patches/3.14.13/patch-fblogo
diff --git a/target/linux/patches/3.14.9/patch-grsec b/target/linux/patches/3.14.13/patch-grsec
index 9d846b96f..9d846b96f 100644
--- a/target/linux/patches/3.14.9/patch-grsec
+++ b/target/linux/patches/3.14.13/patch-grsec
diff --git a/target/linux/patches/3.14.9/patch-mptcp b/target/linux/patches/3.14.13/patch-mptcp
index 9784e0577..9784e0577 100644
--- a/target/linux/patches/3.14.9/patch-mptcp
+++ b/target/linux/patches/3.14.13/patch-mptcp
diff --git a/target/linux/patches/3.14.9/patch-yaffs2 b/target/linux/patches/3.14.13/patch-yaffs2
index f075aa658..f075aa658 100644
--- a/target/linux/patches/3.14.9/patch-yaffs2
+++ b/target/linux/patches/3.14.13/patch-yaffs2
diff --git a/target/linux/patches/3.14.9/ppc64-missing-zlib.patch b/target/linux/patches/3.14.13/ppc64-missing-zlib.patch
index c6e0616be..c6e0616be 100644
--- a/target/linux/patches/3.14.9/ppc64-missing-zlib.patch
+++ b/target/linux/patches/3.14.13/ppc64-missing-zlib.patch
diff --git a/target/linux/patches/3.14.9/regmap-boolean.patch b/target/linux/patches/3.14.13/regmap-boolean.patch
index d73620e4d..d73620e4d 100644
--- a/target/linux/patches/3.14.9/regmap-boolean.patch
+++ b/target/linux/patches/3.14.13/regmap-boolean.patch
diff --git a/target/linux/patches/3.14.9/relocs.patch b/target/linux/patches/3.14.13/relocs.patch
index 69a7c88a9..69a7c88a9 100644
--- a/target/linux/patches/3.14.9/relocs.patch
+++ b/target/linux/patches/3.14.13/relocs.patch
diff --git a/target/linux/patches/3.14.9/sgidefs.patch b/target/linux/patches/3.14.13/sgidefs.patch
index f00a284d9..f00a284d9 100644
--- a/target/linux/patches/3.14.9/sgidefs.patch
+++ b/target/linux/patches/3.14.13/sgidefs.patch
diff --git a/target/linux/patches/3.14.9/sortext.patch b/target/linux/patches/3.14.13/sortext.patch
index 8fd4e1d6b..8fd4e1d6b 100644
--- a/target/linux/patches/3.14.9/sortext.patch
+++ b/target/linux/patches/3.14.13/sortext.patch
diff --git a/target/linux/patches/3.14.9/startup.patch b/target/linux/patches/3.14.13/startup.patch
index d396b75e4..d396b75e4 100644
--- a/target/linux/patches/3.14.9/startup.patch
+++ b/target/linux/patches/3.14.13/startup.patch
diff --git a/target/linux/patches/3.14.9/tcp-fastopen.patch b/target/linux/patches/3.14.13/tcp-fastopen.patch
index 43e685972..43e685972 100644
--- a/target/linux/patches/3.14.9/tcp-fastopen.patch
+++ b/target/linux/patches/3.14.13/tcp-fastopen.patch
diff --git a/target/linux/patches/3.14.9/wlan-cf.patch b/target/linux/patches/3.14.13/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.14.9/wlan-cf.patch
+++ b/target/linux/patches/3.14.13/wlan-cf.patch
diff --git a/target/linux/patches/3.14.9/xargs.patch b/target/linux/patches/3.14.13/xargs.patch
index 2c7b3df59..2c7b3df59 100644
--- a/target/linux/patches/3.14.9/xargs.patch
+++ b/target/linux/patches/3.14.13/xargs.patch
diff --git a/target/linux/patches/3.14.9/zlib-inflate.patch b/target/linux/patches/3.14.13/zlib-inflate.patch
index 58e1f6d21..58e1f6d21 100644
--- a/target/linux/patches/3.14.9/zlib-inflate.patch
+++ b/target/linux/patches/3.14.13/zlib-inflate.patch
diff --git a/target/linux/patches/3.15.4/bsd-compatibility.patch b/target/linux/patches/3.15.6/bsd-compatibility.patch
index b954b658f..b954b658f 100644
--- a/target/linux/patches/3.15.4/bsd-compatibility.patch
+++ b/target/linux/patches/3.15.6/bsd-compatibility.patch
diff --git a/target/linux/patches/3.15.4/cleankernel.patch b/target/linux/patches/3.15.6/cleankernel.patch
index d8c055dc3..d8c055dc3 100644
--- a/target/linux/patches/3.15.4/cleankernel.patch
+++ b/target/linux/patches/3.15.6/cleankernel.patch
diff --git a/target/linux/patches/3.15.4/defaults.patch b/target/linux/patches/3.15.6/defaults.patch
index 6cdca084e..6cdca084e 100644
--- a/target/linux/patches/3.15.4/defaults.patch
+++ b/target/linux/patches/3.15.6/defaults.patch
diff --git a/target/linux/patches/3.15.4/disable-netfilter.patch b/target/linux/patches/3.15.6/disable-netfilter.patch
index 7b1ca013a..7b1ca013a 100644
--- a/target/linux/patches/3.15.4/disable-netfilter.patch
+++ b/target/linux/patches/3.15.6/disable-netfilter.patch
diff --git a/target/linux/patches/3.15.4/export-symbol-for-exmap.patch b/target/linux/patches/3.15.6/export-symbol-for-exmap.patch
index 4f0fc8449..4f0fc8449 100644
--- a/target/linux/patches/3.15.4/export-symbol-for-exmap.patch
+++ b/target/linux/patches/3.15.6/export-symbol-for-exmap.patch
diff --git a/target/linux/patches/3.15.4/gemalto.patch b/target/linux/patches/3.15.6/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.15.4/gemalto.patch
+++ b/target/linux/patches/3.15.6/gemalto.patch
diff --git a/target/linux/patches/3.15.4/initramfs-nosizelimit.patch b/target/linux/patches/3.15.6/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/3.15.4/initramfs-nosizelimit.patch
+++ b/target/linux/patches/3.15.6/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/3.15.4/lemote-rfkill.patch b/target/linux/patches/3.15.6/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.15.4/lemote-rfkill.patch
+++ b/target/linux/patches/3.15.6/lemote-rfkill.patch
diff --git a/target/linux/patches/3.15.4/lz4.patch b/target/linux/patches/3.15.6/lz4.patch
index 3106015ab..3106015ab 100644
--- a/target/linux/patches/3.15.4/lz4.patch
+++ b/target/linux/patches/3.15.6/lz4.patch
diff --git a/target/linux/patches/3.15.4/microblaze-axi.patch b/target/linux/patches/3.15.6/microblaze-axi.patch
index 1a4b17d8c..1a4b17d8c 100644
--- a/target/linux/patches/3.15.4/microblaze-axi.patch
+++ b/target/linux/patches/3.15.6/microblaze-axi.patch
diff --git a/target/linux/patches/3.15.4/microblaze-ethernet.patch b/target/linux/patches/3.15.6/microblaze-ethernet.patch
index 742ab477e..742ab477e 100644
--- a/target/linux/patches/3.15.4/microblaze-ethernet.patch
+++ b/target/linux/patches/3.15.6/microblaze-ethernet.patch
diff --git a/target/linux/patches/3.15.4/mkpiggy.patch b/target/linux/patches/3.15.6/mkpiggy.patch
index 751678b74..751678b74 100644
--- a/target/linux/patches/3.15.4/mkpiggy.patch
+++ b/target/linux/patches/3.15.6/mkpiggy.patch
diff --git a/target/linux/patches/3.15.4/mtd-rootfs.patch b/target/linux/patches/3.15.6/mtd-rootfs.patch
index 775d5fc80..775d5fc80 100644
--- a/target/linux/patches/3.15.4/mtd-rootfs.patch
+++ b/target/linux/patches/3.15.6/mtd-rootfs.patch
diff --git a/target/linux/patches/3.15.4/nfsv3-tcp.patch b/target/linux/patches/3.15.6/nfsv3-tcp.patch
index d5e07e1c2..d5e07e1c2 100644
--- a/target/linux/patches/3.15.4/nfsv3-tcp.patch
+++ b/target/linux/patches/3.15.6/nfsv3-tcp.patch
diff --git a/target/linux/patches/3.15.4/non-static.patch b/target/linux/patches/3.15.6/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.15.4/non-static.patch
+++ b/target/linux/patches/3.15.6/non-static.patch
diff --git a/target/linux/patches/3.15.4/patch-fblogo b/target/linux/patches/3.15.6/patch-fblogo
index f1fad64c1..f1fad64c1 100644
--- a/target/linux/patches/3.15.4/patch-fblogo
+++ b/target/linux/patches/3.15.6/patch-fblogo
diff --git a/target/linux/patches/3.15.4/patch-yaffs2 b/target/linux/patches/3.15.6/patch-yaffs2
index bb244c7ca..bb244c7ca 100644
--- a/target/linux/patches/3.15.4/patch-yaffs2
+++ b/target/linux/patches/3.15.6/patch-yaffs2
diff --git a/target/linux/patches/3.15.4/ppc64-missing-zlib.patch b/target/linux/patches/3.15.6/ppc64-missing-zlib.patch
index c6e0616be..c6e0616be 100644
--- a/target/linux/patches/3.15.4/ppc64-missing-zlib.patch
+++ b/target/linux/patches/3.15.6/ppc64-missing-zlib.patch
diff --git a/target/linux/patches/3.15.4/regmap-boolean.patch b/target/linux/patches/3.15.6/regmap-boolean.patch
index b61c4792a..b61c4792a 100644
--- a/target/linux/patches/3.15.4/regmap-boolean.patch
+++ b/target/linux/patches/3.15.6/regmap-boolean.patch
diff --git a/target/linux/patches/3.15.4/relocs.patch b/target/linux/patches/3.15.6/relocs.patch
index 69a7c88a9..69a7c88a9 100644
--- a/target/linux/patches/3.15.4/relocs.patch
+++ b/target/linux/patches/3.15.6/relocs.patch
diff --git a/target/linux/patches/3.15.4/sgidefs.patch b/target/linux/patches/3.15.6/sgidefs.patch
index f00a284d9..f00a284d9 100644
--- a/target/linux/patches/3.15.4/sgidefs.patch
+++ b/target/linux/patches/3.15.6/sgidefs.patch
diff --git a/target/linux/patches/3.15.4/sortext.patch b/target/linux/patches/3.15.6/sortext.patch
index 8fd4e1d6b..8fd4e1d6b 100644
--- a/target/linux/patches/3.15.4/sortext.patch
+++ b/target/linux/patches/3.15.6/sortext.patch
diff --git a/target/linux/patches/3.15.4/startup.patch b/target/linux/patches/3.15.6/startup.patch
index d396b75e4..d396b75e4 100644
--- a/target/linux/patches/3.15.4/startup.patch
+++ b/target/linux/patches/3.15.6/startup.patch
diff --git a/target/linux/patches/3.15.4/tcp-fastopen.patch b/target/linux/patches/3.15.6/tcp-fastopen.patch
index 982d83305..982d83305 100644
--- a/target/linux/patches/3.15.4/tcp-fastopen.patch
+++ b/target/linux/patches/3.15.6/tcp-fastopen.patch
diff --git a/target/linux/patches/3.15.4/wlan-cf.patch b/target/linux/patches/3.15.6/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.15.4/wlan-cf.patch
+++ b/target/linux/patches/3.15.6/wlan-cf.patch
diff --git a/target/linux/patches/3.15.4/xargs.patch b/target/linux/patches/3.15.6/xargs.patch
index 2c7b3df59..2c7b3df59 100644
--- a/target/linux/patches/3.15.4/xargs.patch
+++ b/target/linux/patches/3.15.6/xargs.patch
diff --git a/target/linux/patches/3.4.95/aufs2.patch b/target/linux/patches/3.4.99/aufs2.patch
index d40c9a3fe..d40c9a3fe 100644
--- a/target/linux/patches/3.4.95/aufs2.patch
+++ b/target/linux/patches/3.4.99/aufs2.patch
diff --git a/target/linux/patches/3.4.95/bsd-compatibility.patch b/target/linux/patches/3.4.99/bsd-compatibility.patch
index 9e91a62de..9e91a62de 100644
--- a/target/linux/patches/3.4.95/bsd-compatibility.patch
+++ b/target/linux/patches/3.4.99/bsd-compatibility.patch
diff --git a/target/linux/patches/3.4.95/defaults.patch b/target/linux/patches/3.4.99/defaults.patch
index 58aae610b..58aae610b 100644
--- a/target/linux/patches/3.4.95/defaults.patch
+++ b/target/linux/patches/3.4.99/defaults.patch
diff --git a/target/linux/patches/3.4.95/gemalto.patch b/target/linux/patches/3.4.99/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.4.95/gemalto.patch
+++ b/target/linux/patches/3.4.99/gemalto.patch
diff --git a/target/linux/patches/3.4.95/lemote-rfkill.patch b/target/linux/patches/3.4.99/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.4.95/lemote-rfkill.patch
+++ b/target/linux/patches/3.4.99/lemote-rfkill.patch
diff --git a/target/linux/patches/3.4.95/linux-gcc-check.patch b/target/linux/patches/3.4.99/linux-gcc-check.patch
index 7cc381845..7cc381845 100644
--- a/target/linux/patches/3.4.95/linux-gcc-check.patch
+++ b/target/linux/patches/3.4.99/linux-gcc-check.patch
diff --git a/target/linux/patches/3.4.95/mips-error.patch b/target/linux/patches/3.4.99/mips-error.patch
index 800abc80d..800abc80d 100644
--- a/target/linux/patches/3.4.95/mips-error.patch
+++ b/target/linux/patches/3.4.99/mips-error.patch
diff --git a/target/linux/patches/3.4.95/mkpiggy.patch b/target/linux/patches/3.4.99/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/target/linux/patches/3.4.95/mkpiggy.patch
+++ b/target/linux/patches/3.4.99/mkpiggy.patch
diff --git a/target/linux/patches/3.4.95/module-alloc-size-check.patch b/target/linux/patches/3.4.99/module-alloc-size-check.patch
index a792ac60a..a792ac60a 100644
--- a/target/linux/patches/3.4.95/module-alloc-size-check.patch
+++ b/target/linux/patches/3.4.99/module-alloc-size-check.patch
diff --git a/target/linux/patches/3.4.95/non-static.patch b/target/linux/patches/3.4.99/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.4.95/non-static.patch
+++ b/target/linux/patches/3.4.99/non-static.patch
diff --git a/target/linux/patches/3.4.95/patch-yaffs2 b/target/linux/patches/3.4.99/patch-yaffs2
index 44c95915f..44c95915f 100644
--- a/target/linux/patches/3.4.95/patch-yaffs2
+++ b/target/linux/patches/3.4.99/patch-yaffs2
diff --git a/target/linux/patches/3.4.95/relocs.patch b/target/linux/patches/3.4.99/relocs.patch
index 43c5bb580..43c5bb580 100644
--- a/target/linux/patches/3.4.95/relocs.patch
+++ b/target/linux/patches/3.4.99/relocs.patch
diff --git a/target/linux/patches/3.4.95/sparc-include.patch b/target/linux/patches/3.4.99/sparc-include.patch
index 2f8ffd061..2f8ffd061 100644
--- a/target/linux/patches/3.4.95/sparc-include.patch
+++ b/target/linux/patches/3.4.99/sparc-include.patch
diff --git a/target/linux/patches/3.4.95/startup.patch b/target/linux/patches/3.4.99/startup.patch
index c26430bcb..c26430bcb 100644
--- a/target/linux/patches/3.4.95/startup.patch
+++ b/target/linux/patches/3.4.99/startup.patch
diff --git a/target/linux/patches/3.4.95/usb-defaults-off.patch b/target/linux/patches/3.4.99/usb-defaults-off.patch
index 31367108a..31367108a 100644
--- a/target/linux/patches/3.4.95/usb-defaults-off.patch
+++ b/target/linux/patches/3.4.99/usb-defaults-off.patch
diff --git a/target/linux/patches/3.4.95/vga-cons-default-off.patch b/target/linux/patches/3.4.99/vga-cons-default-off.patch
index 178aeeeb9..178aeeeb9 100644
--- a/target/linux/patches/3.4.95/vga-cons-default-off.patch
+++ b/target/linux/patches/3.4.99/vga-cons-default-off.patch
diff --git a/target/linux/patches/3.4.95/wlan-cf.patch b/target/linux/patches/3.4.99/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.4.95/wlan-cf.patch
+++ b/target/linux/patches/3.4.99/wlan-cf.patch
diff --git a/target/linux/patches/3.4.95/zlib-inflate.patch b/target/linux/patches/3.4.99/zlib-inflate.patch
index 58e1f6d21..58e1f6d21 100644
--- a/target/linux/patches/3.4.95/zlib-inflate.patch
+++ b/target/linux/patches/3.4.99/zlib-inflate.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0001-mtd-add-rb4xx-nand-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0001-mtd-add-rb4xx-nand-driver.patch
index 8199de991..8199de991 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0001-mtd-add-rb4xx-nand-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0001-mtd-add-rb4xx-nand-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0002-phy-add-ethtool-ioctl-support-used-by-ag71xx-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0002-phy-add-ethtool-ioctl-support-used-by-ag71xx-driver.patch
index ba7fbfad8..ba7fbfad8 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0002-phy-add-ethtool-ioctl-support-used-by-ag71xx-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0002-phy-add-ethtool-ioctl-support-used-by-ag71xx-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0003-net-add-ag71xx-mac-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0003-net-add-ag71xx-mac-driver.patch
index 1915c184c..1915c184c 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0003-net-add-ag71xx-mac-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0003-net-add-ag71xx-mac-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0004-drivers-link-SPI-drivers-before-MTD-drivers.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0004-drivers-link-SPI-drivers-before-MTD-drivers.patch
index 824d6ebec..824d6ebec 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0004-drivers-link-SPI-drivers-before-MTD-drivers.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0004-drivers-link-SPI-drivers-before-MTD-drivers.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0005-spi-add-various-flags-to-spi_transfer-and-spi_messag.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0005-spi-add-various-flags-to-spi_transfer-and-spi_messag.patch
index 505562fe0..505562fe0 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0005-spi-add-various-flags-to-spi_transfer-and-spi_messag.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0005-spi-add-various-flags-to-spi_transfer-and-spi_messag.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0006-spi-add-rb4xx-SPI-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0006-spi-add-rb4xx-SPI-driver.patch
index 757dc775b..757dc775b 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0006-spi-add-rb4xx-SPI-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0006-spi-add-rb4xx-SPI-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0007-spi-add-rb4xx-cpld-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0007-spi-add-rb4xx-cpld-driver.patch
index 452f2e761..452f2e761 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0007-spi-add-rb4xx-cpld-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0007-spi-add-rb4xx-cpld-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0008-gpio-add-GPIO-latch-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0008-gpio-add-GPIO-latch-driver.patch
index 188cec3b2..188cec3b2 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0008-gpio-add-GPIO-latch-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0008-gpio-add-GPIO-latch-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0009-spi-export-spi_bitbang_bufs-function.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0009-spi-export-spi_bitbang_bufs-function.patch
index dc6af0a9d..dc6af0a9d 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0009-spi-export-spi_bitbang_bufs-function.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0009-spi-export-spi_bitbang_bufs-function.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0010-spi-add-type-field-to-spi_transfer-struct.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0010-spi-add-type-field-to-spi_transfer-struct.patch
index 2721d3c4e..2721d3c4e 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0010-spi-add-type-field-to-spi_transfer-struct.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0010-spi-add-type-field-to-spi_transfer-struct.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0011-mtd-m25p80-set-SPI-transfer-type.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0011-mtd-m25p80-set-SPI-transfer-type.patch
index e2dfad6e0..e2dfad6e0 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0011-mtd-m25p80-set-SPI-transfer-type.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0011-mtd-m25p80-set-SPI-transfer-type.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch
index c63489112..c63489112 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0012-mips-ath79-swizzle-PCI-address-for-ar71xx.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0013-net-add-swconfig-support.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0013-net-add-swconfig-support.patch
index 57c112842..57c112842 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0013-net-add-swconfig-support.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0013-net-add-swconfig-support.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0014-phy-add-detach-callback-to-struct-phy_driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0014-phy-add-detach-callback-to-struct-phy_driver.patch
index 43ca7ce9b..43ca7ce9b 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0014-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0014-phy-add-detach-callback-to-struct-phy_driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0015-phy-add-ar8216-PHY-support.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0015-phy-add-ar8216-PHY-support.patch
index 46b2ba467..46b2ba467 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0015-phy-add-ar8216-PHY-support.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0015-phy-add-ar8216-PHY-support.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0016-phy-mdio-bitbang-ignore-TA-value.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0016-phy-mdio-bitbang-ignore-TA-value.patch
index fe23f4912..fe23f4912 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0016-phy-mdio-bitbang-ignore-TA-value.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0016-phy-mdio-bitbang-ignore-TA-value.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0017-MIPS-ath79-fix-maximum-timeout.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0017-MIPS-ath79-fix-maximum-timeout.patch
index 3ca02783d..3ca02783d 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0017-MIPS-ath79-fix-maximum-timeout.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0017-MIPS-ath79-fix-maximum-timeout.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch
index 6a372c8f1..6a372c8f1 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0018-net-allow-PHY-drivers-to-insert-packet-mangle-hooks.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0019-MIPS-ath79-process-board-cmdline-option.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0019-MIPS-ath79-process-board-cmdline-option.patch
index 13eae3b8c..13eae3b8c 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0019-MIPS-ath79-process-board-cmdline-option.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0019-MIPS-ath79-process-board-cmdline-option.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0020-spi-ath79-add-fast-flash-read-support.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0020-spi-ath79-add-fast-flash-read-support.patch
index 8fd174448..8fd174448 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0020-spi-ath79-add-fast-flash-read-support.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0020-spi-ath79-add-fast-flash-read-support.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0021-phy-add-mdio-boardinfo.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0021-phy-add-mdio-boardinfo.patch
index 3ec15e171..3ec15e171 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0021-phy-add-mdio-boardinfo.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0021-phy-add-mdio-boardinfo.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0022-mips-ath79-add-ath79-ethernet-driver.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0022-mips-ath79-add-ath79-ethernet-driver.patch
index a7eff47b1..a7eff47b1 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0022-mips-ath79-add-ath79-ethernet-driver.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0022-mips-ath79-add-ath79-ethernet-driver.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0023-MIPS-ath79-add-Mikrotik-rb4xx-device-support.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0023-MIPS-ath79-add-Mikrotik-rb4xx-device-support.patch
index 67d390432..67d390432 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0023-MIPS-ath79-add-Mikrotik-rb4xx-device-support.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0023-MIPS-ath79-add-Mikrotik-rb4xx-device-support.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0024-various-fixups-for-Werror.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0024-various-fixups-for-Werror.patch
index 77883846d..77883846d 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0024-various-fixups-for-Werror.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0024-various-fixups-for-Werror.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0025-rb4xx_nand-add-partition-for-cfgfs.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0025-rb4xx_nand-add-partition-for-cfgfs.patch
index 7d9d85f62..7d9d85f62 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0025-rb4xx_nand-add-partition-for-cfgfs.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0025-rb4xx_nand-add-partition-for-cfgfs.patch
diff --git a/target/mips/mikrotik-rb4xx/patches/3.14.9/0026-various-fixups-for-ath5k-fixing-system-freezes.patch b/target/mips/mikrotik-rb4xx/patches/3.14.13/0026-various-fixups-for-ath5k-fixing-system-freezes.patch
index 4b17700d8..4b17700d8 100644
--- a/target/mips/mikrotik-rb4xx/patches/3.14.9/0026-various-fixups-for-ath5k-fixing-system-freezes.patch
+++ b/target/mips/mikrotik-rb4xx/patches/3.14.13/0026-various-fixups-for-ath5k-fixing-system-freezes.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.10.45/rb532-cfgfs.patch b/target/mips/mikrotik-rb532/patches/3.10.49/rb532-cfgfs.patch
index 36ce30d91..36ce30d91 100644
--- a/target/mips/mikrotik-rb532/patches/3.10.45/rb532-cfgfs.patch
+++ b/target/mips/mikrotik-rb532/patches/3.10.49/rb532-cfgfs.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.10.45/rb532-pci.patch b/target/mips/mikrotik-rb532/patches/3.10.49/rb532-pci.patch
index adfa652b5..adfa652b5 100644
--- a/target/mips/mikrotik-rb532/patches/3.10.45/rb532-pci.patch
+++ b/target/mips/mikrotik-rb532/patches/3.10.49/rb532-pci.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.12.23/rb532-cfgfs.patch b/target/mips/mikrotik-rb532/patches/3.12.24/rb532-cfgfs.patch
index 36ce30d91..36ce30d91 100644
--- a/target/mips/mikrotik-rb532/patches/3.12.23/rb532-cfgfs.patch
+++ b/target/mips/mikrotik-rb532/patches/3.12.24/rb532-cfgfs.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.12.23/rb532-pci.patch b/target/mips/mikrotik-rb532/patches/3.12.24/rb532-pci.patch
index adfa652b5..adfa652b5 100644
--- a/target/mips/mikrotik-rb532/patches/3.12.23/rb532-pci.patch
+++ b/target/mips/mikrotik-rb532/patches/3.12.24/rb532-pci.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.14.9/rb532-cfgfs.patch b/target/mips/mikrotik-rb532/patches/3.14.13/rb532-cfgfs.patch
index 36ce30d91..36ce30d91 100644
--- a/target/mips/mikrotik-rb532/patches/3.14.9/rb532-cfgfs.patch
+++ b/target/mips/mikrotik-rb532/patches/3.14.13/rb532-cfgfs.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.14.9/rb532-pci.patch b/target/mips/mikrotik-rb532/patches/3.14.13/rb532-pci.patch
index adfa652b5..adfa652b5 100644
--- a/target/mips/mikrotik-rb532/patches/3.14.9/rb532-pci.patch
+++ b/target/mips/mikrotik-rb532/patches/3.14.13/rb532-pci.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.15.4/rb532-cfgfs.patch b/target/mips/mikrotik-rb532/patches/3.15.6/rb532-cfgfs.patch
index 36ce30d91..36ce30d91 100644
--- a/target/mips/mikrotik-rb532/patches/3.15.4/rb532-cfgfs.patch
+++ b/target/mips/mikrotik-rb532/patches/3.15.6/rb532-cfgfs.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.15.4/rb532-serial.patch b/target/mips/mikrotik-rb532/patches/3.15.6/rb532-serial.patch
index e8800b330..e8800b330 100644
--- a/target/mips/mikrotik-rb532/patches/3.15.4/rb532-serial.patch
+++ b/target/mips/mikrotik-rb532/patches/3.15.6/rb532-serial.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.4.95/rb532-cfgfs.patch b/target/mips/mikrotik-rb532/patches/3.4.99/rb532-cfgfs.patch
index 36ce30d91..36ce30d91 100644
--- a/target/mips/mikrotik-rb532/patches/3.4.95/rb532-cfgfs.patch
+++ b/target/mips/mikrotik-rb532/patches/3.4.99/rb532-cfgfs.patch
diff --git a/target/mips/mikrotik-rb532/patches/3.4.95/rb532-pci.patch b/target/mips/mikrotik-rb532/patches/3.4.99/rb532-pci.patch
index adfa652b5..adfa652b5 100644
--- a/target/mips/mikrotik-rb532/patches/3.4.95/rb532-pci.patch
+++ b/target/mips/mikrotik-rb532/patches/3.4.99/rb532-pci.patch
diff --git a/target/mips64/lemote-yeelong/patches/3.15.6/sm7xx-fb.patch b/target/mips64/lemote-yeelong/patches/3.15.6/sm7xx-fb.patch
new file mode 100644
index 000000000..413840abd
--- /dev/null
+++ b/target/mips64/lemote-yeelong/patches/3.15.6/sm7xx-fb.patch
@@ -0,0 +1,1871 @@
+diff -Nur linux-3.15.6.orig/drivers/staging/Kconfig linux-3.15.6/drivers/staging/Kconfig
+--- linux-3.15.6.orig/drivers/staging/Kconfig 2014-07-18 01:23:31.000000000 +0200
++++ linux-3.15.6/drivers/staging/Kconfig 2014-07-22 17:59:31.842279622 +0200
+@@ -80,6 +80,8 @@
+
+ source "drivers/staging/wlags49_h25/Kconfig"
+
++source "drivers/staging/sm7xxfb/Kconfig"
++
+ source "drivers/staging/crystalhd/Kconfig"
+
+ source "drivers/staging/cxt1e1/Kconfig"
+diff -Nur linux-3.15.6.orig/drivers/staging/Makefile linux-3.15.6/drivers/staging/Makefile
+--- linux-3.15.6.orig/drivers/staging/Makefile 2014-07-18 01:23:31.000000000 +0200
++++ linux-3.15.6/drivers/staging/Makefile 2014-07-22 17:59:31.842279622 +0200
+@@ -34,6 +34,7 @@
+ obj-$(CONFIG_IIO) += iio/
+ obj-$(CONFIG_WLAGS49_H2) += wlags49_h2/
+ obj-$(CONFIG_WLAGS49_H25) += wlags49_h25/
++obj-$(CONFIG_FB_SM7XX) += sm7xxfb/
+ obj-$(CONFIG_CRYSTALHD) += crystalhd/
+ obj-$(CONFIG_CXT1E1) += cxt1e1/
+ obj-$(CONFIG_FB_XGI) += xgifb/
+diff -Nur linux-3.15.6.orig/drivers/staging/sm7xxfb/Kconfig linux-3.15.6/drivers/staging/sm7xxfb/Kconfig
+--- linux-3.15.6.orig/drivers/staging/sm7xxfb/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.15.6/drivers/staging/sm7xxfb/Kconfig 2014-07-22 17:59:31.846279635 +0200
+@@ -0,0 +1,13 @@
++config FB_SM7XX
++ tristate "Silicon Motion SM7XX framebuffer support"
++ depends on FB && PCI
++ select FB_CFB_FILLRECT
++ select FB_CFB_COPYAREA
++ select FB_CFB_IMAGEBLIT
++ help
++ Frame buffer driver for the Silicon Motion SM710, SM712, SM721
++ and SM722 chips.
++
++ This driver is also available as a module. The module will be
++ called sm7xxfb. If you want to compile it as a module, say M
++ here and read <file:Documentation/kbuild/modules.txt>.
+diff -Nur linux-3.15.6.orig/drivers/staging/sm7xxfb/Makefile linux-3.15.6/drivers/staging/sm7xxfb/Makefile
+--- linux-3.15.6.orig/drivers/staging/sm7xxfb/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.15.6/drivers/staging/sm7xxfb/Makefile 2014-07-22 17:59:31.846279635 +0200
+@@ -0,0 +1 @@
++obj-$(CONFIG_FB_SM7XX) += sm7xxfb.o
+diff -Nur linux-3.15.6.orig/drivers/staging/sm7xxfb/sm7xxfb.c linux-3.15.6/drivers/staging/sm7xxfb/sm7xxfb.c
+--- linux-3.15.6.orig/drivers/staging/sm7xxfb/sm7xxfb.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.15.6/drivers/staging/sm7xxfb/sm7xxfb.c 2014-07-22 17:59:31.930279894 +0200
+@@ -0,0 +1,1026 @@
++/*
++ * Silicon Motion SM7XX frame buffer device
++ *
++ * Copyright (C) 2006 Silicon Motion Technology Corp.
++ * Authors: Ge Wang, gewang@siliconmotion.com
++ * Boyod boyod.yang@siliconmotion.com.cn
++ *
++ * Copyright (C) 2009 Lemote, Inc.
++ * Author: Wu Zhangjin, wuzhangjin@gmail.com
++ *
++ * Copyright (C) 2011 Igalia, S.L.
++ * Author: Javier M. Mellid <jmunhoz@igalia.com>
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ *
++ * Framebuffer driver for Silicon Motion SM710, SM712, SM721 and SM722 chips
++ */
++
++#include <linux/io.h>
++#include <linux/fb.h>
++#include <linux/pci.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/uaccess.h>
++#include <linux/module.h>
++#include <linux/console.h>
++#include <linux/screen_info.h>
++
++#ifdef CONFIG_PM
++#include <linux/pm.h>
++#endif
++
++#include "sm7xx.h"
++
++/*
++* Private structure
++*/
++struct smtcfb_info {
++ struct pci_dev *pdev;
++ struct fb_info fb;
++ u16 chip_id;
++ u8 chip_rev_id;
++
++ void __iomem *lfb; /* linear frame buffer */
++ void __iomem *dp_regs; /* drawing processor control regs */
++ void __iomem *vp_regs; /* video processor control regs */
++ void __iomem *cp_regs; /* capture processor control regs */
++ void __iomem *mmio; /* memory map IO port */
++
++ u_int width;
++ u_int height;
++ u_int hz;
++
++ u32 colreg[17];
++};
++
++void __iomem *smtc_RegBaseAddress; /* Memory Map IO starting address */
++
++static struct fb_var_screeninfo smtcfb_var = {
++ .xres = 1024,
++ .yres = 600,
++ .xres_virtual = 1024,
++ .yres_virtual = 600,
++ .bits_per_pixel = 16,
++ .red = {16, 8, 0},
++ .green = {8, 8, 0},
++ .blue = {0, 8, 0},
++ .activate = FB_ACTIVATE_NOW,
++ .height = -1,
++ .width = -1,
++ .vmode = FB_VMODE_NONINTERLACED,
++ .nonstd = 0,
++ .accel_flags = FB_ACCELF_TEXT,
++};
++
++static struct fb_fix_screeninfo smtcfb_fix = {
++ .id = "smXXXfb",
++ .type = FB_TYPE_PACKED_PIXELS,
++ .visual = FB_VISUAL_TRUECOLOR,
++ .line_length = 800 * 3,
++ .accel = FB_ACCEL_SMI_LYNX,
++ .type_aux = 0,
++ .xpanstep = 0,
++ .ypanstep = 0,
++ .ywrapstep = 0,
++};
++
++struct vesa_mode {
++ char index[6];
++ u16 lfb_width;
++ u16 lfb_height;
++ u16 lfb_depth;
++};
++
++static struct vesa_mode vesa_mode_table[] = {
++ {"0x301", 640, 480, 8},
++ {"0x303", 800, 600, 8},
++ {"0x305", 1024, 768, 8},
++ {"0x307", 1280, 1024, 8},
++
++ {"0x311", 640, 480, 16},
++ {"0x314", 800, 600, 16},
++ {"0x317", 1024, 768, 16},
++ {"0x31A", 1280, 1024, 16},
++
++ {"0x312", 640, 480, 24},
++ {"0x315", 800, 600, 24},
++ {"0x318", 1024, 768, 24},
++ {"0x31B", 1280, 1024, 24},
++};
++
++struct screen_info smtc_scr_info;
++
++/* process command line options, get vga parameter */
++static int __init sm7xx_vga_setup(char *options)
++{
++ int i;
++
++ if (!options || !*options)
++ return -EINVAL;
++
++ smtc_scr_info.lfb_width = 0;
++ smtc_scr_info.lfb_height = 0;
++ smtc_scr_info.lfb_depth = 0;
++
++ pr_debug("sm7xx_vga_setup = %s\n", options);
++
++ for (i = 0; i < ARRAY_SIZE(vesa_mode_table); i++) {
++ if (strstr(options, vesa_mode_table[i].index)) {
++ smtc_scr_info.lfb_width = vesa_mode_table[i].lfb_width;
++ smtc_scr_info.lfb_height =
++ vesa_mode_table[i].lfb_height;
++ smtc_scr_info.lfb_depth = vesa_mode_table[i].lfb_depth;
++ return 0;
++ }
++ }
++
++ return -1;
++}
++__setup("vga=", sm7xx_vga_setup);
++
++static void sm712_setpalette(int regno, unsigned red, unsigned green,
++ unsigned blue, struct fb_info *info)
++{
++ /* set bit 5:4 = 01 (write LCD RAM only) */
++ smtc_seqw(0x66, (smtc_seqr(0x66) & 0xC3) | 0x10);
++
++ smtc_mmiowb(regno, dac_reg);
++ smtc_mmiowb(red >> 10, dac_val);
++ smtc_mmiowb(green >> 10, dac_val);
++ smtc_mmiowb(blue >> 10, dac_val);
++}
++
++/* chan_to_field
++ *
++ * convert a colour value into a field position
++ *
++ * from pxafb.c
++ */
++
++static inline unsigned int chan_to_field(unsigned int chan,
++ struct fb_bitfield *bf)
++{
++ chan &= 0xffff;
++ chan >>= 16 - bf->length;
++ return chan << bf->offset;
++}
++
++static int smtc_blank(int blank_mode, struct fb_info *info)
++{
++ /* clear DPMS setting */
++ switch (blank_mode) {
++ case FB_BLANK_UNBLANK:
++ /* Screen On: HSync: On, VSync : On */
++ smtc_seqw(0x01, (smtc_seqr(0x01) & (~0x20)));
++ smtc_seqw(0x6a, 0x16);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x21, (smtc_seqr(0x21) & 0x77));
++ smtc_seqw(0x22, (smtc_seqr(0x22) & (~0x30)));
++ smtc_seqw(0x23, (smtc_seqr(0x23) & (~0xc0)));
++ smtc_seqw(0x24, (smtc_seqr(0x24) | 0x01));
++ smtc_seqw(0x31, (smtc_seqr(0x31) | 0x03));
++ break;
++ case FB_BLANK_NORMAL:
++ /* Screen Off: HSync: On, VSync : On Soft blank */
++ smtc_seqw(0x01, (smtc_seqr(0x01) & (~0x20)));
++ smtc_seqw(0x6a, 0x16);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x22, (smtc_seqr(0x22) & (~0x30)));
++ smtc_seqw(0x23, (smtc_seqr(0x23) & (~0xc0)));
++ smtc_seqw(0x24, (smtc_seqr(0x24) | 0x01));
++ smtc_seqw(0x31, ((smtc_seqr(0x31) & (~0x07)) | 0x00));
++ break;
++ case FB_BLANK_VSYNC_SUSPEND:
++ /* Screen On: HSync: On, VSync : Off */
++ smtc_seqw(0x01, (smtc_seqr(0x01) | 0x20));
++ smtc_seqw(0x20, (smtc_seqr(0x20) & (~0xB0)));
++ smtc_seqw(0x6a, 0x0c);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x21, (smtc_seqr(0x21) | 0x88));
++ smtc_seqw(0x22, ((smtc_seqr(0x22) & (~0x30)) | 0x20));
++ smtc_seqw(0x23, ((smtc_seqr(0x23) & (~0xc0)) | 0x20));
++ smtc_seqw(0x24, (smtc_seqr(0x24) & (~0x01)));
++ smtc_seqw(0x31, ((smtc_seqr(0x31) & (~0x07)) | 0x00));
++ smtc_seqw(0x34, (smtc_seqr(0x34) | 0x80));
++ break;
++ case FB_BLANK_HSYNC_SUSPEND:
++ /* Screen On: HSync: Off, VSync : On */
++ smtc_seqw(0x01, (smtc_seqr(0x01) | 0x20));
++ smtc_seqw(0x20, (smtc_seqr(0x20) & (~0xB0)));
++ smtc_seqw(0x6a, 0x0c);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x21, (smtc_seqr(0x21) | 0x88));
++ smtc_seqw(0x22, ((smtc_seqr(0x22) & (~0x30)) | 0x10));
++ smtc_seqw(0x23, ((smtc_seqr(0x23) & (~0xc0)) | 0xD8));
++ smtc_seqw(0x24, (smtc_seqr(0x24) & (~0x01)));
++ smtc_seqw(0x31, ((smtc_seqr(0x31) & (~0x07)) | 0x00));
++ smtc_seqw(0x34, (smtc_seqr(0x34) | 0x80));
++ break;
++ case FB_BLANK_POWERDOWN:
++ /* Screen On: HSync: Off, VSync : Off */
++ smtc_seqw(0x01, (smtc_seqr(0x01) | 0x20));
++ smtc_seqw(0x20, (smtc_seqr(0x20) & (~0xB0)));
++ smtc_seqw(0x6a, 0x0c);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x21, (smtc_seqr(0x21) | 0x88));
++ smtc_seqw(0x22, ((smtc_seqr(0x22) & (~0x30)) | 0x30));
++ smtc_seqw(0x23, ((smtc_seqr(0x23) & (~0xc0)) | 0xD8));
++ smtc_seqw(0x24, (smtc_seqr(0x24) & (~0x01)));
++ smtc_seqw(0x31, ((smtc_seqr(0x31) & (~0x07)) | 0x00));
++ smtc_seqw(0x34, (smtc_seqr(0x34) | 0x80));
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int smtc_setcolreg(unsigned regno, unsigned red, unsigned green,
++ unsigned blue, unsigned trans, struct fb_info *info)
++{
++ struct smtcfb_info *sfb;
++ u32 val;
++
++ sfb = info->par;
++
++ if (regno > 255)
++ return 1;
++
++ switch (sfb->fb.fix.visual) {
++ case FB_VISUAL_DIRECTCOLOR:
++ case FB_VISUAL_TRUECOLOR:
++ /*
++ * 16/32 bit true-colour, use pseudo-palette for 16 base color
++ */
++ if (regno < 16) {
++ if (sfb->fb.var.bits_per_pixel == 16) {
++ u32 *pal = sfb->fb.pseudo_palette;
++ val = chan_to_field(red, &sfb->fb.var.red);
++ val |= chan_to_field(green, &sfb->fb.var.green);
++ val |= chan_to_field(blue, &sfb->fb.var.blue);
++#ifdef __BIG_ENDIAN
++ pal[regno] =
++ ((red & 0xf800) >> 8) |
++ ((green & 0xe000) >> 13) |
++ ((green & 0x1c00) << 3) |
++ ((blue & 0xf800) >> 3);
++#else
++ pal[regno] = val;
++#endif
++ } else {
++ u32 *pal = sfb->fb.pseudo_palette;
++ val = chan_to_field(red, &sfb->fb.var.red);
++ val |= chan_to_field(green, &sfb->fb.var.green);
++ val |= chan_to_field(blue, &sfb->fb.var.blue);
++#ifdef __BIG_ENDIAN
++ val =
++ (val & 0xff00ff00 >> 8) |
++ (val & 0x00ff00ff << 8);
++#endif
++ pal[regno] = val;
++ }
++ }
++ break;
++
++ case FB_VISUAL_PSEUDOCOLOR:
++ /* color depth 8 bit */
++ sm712_setpalette(regno, red, green, blue, info);
++ break;
++
++ default:
++ return 1; /* unknown type */
++ }
++
++ return 0;
++
++}
++
++#ifdef __BIG_ENDIAN
++static ssize_t smtcfb_read(struct fb_info *info, char __user *buf, size_t
++ count, loff_t *ppos)
++{
++ unsigned long p = *ppos;
++
++ u32 *buffer, *dst;
++ u32 __iomem *src;
++ int c, i, cnt = 0, err = 0;
++ unsigned long total_size;
++
++ if (!info || !info->screen_base)
++ return -ENODEV;
++
++ if (info->state != FBINFO_STATE_RUNNING)
++ return -EPERM;
++
++ total_size = info->screen_size;
++
++ if (total_size == 0)
++ total_size = info->fix.smem_len;
++
++ if (p >= total_size)
++ return 0;
++
++ if (count >= total_size)
++ count = total_size;
++
++ if (count + p > total_size)
++ count = total_size - p;
++
++ buffer = kmalloc((count > PAGE_SIZE) ? PAGE_SIZE : count, GFP_KERNEL);
++ if (!buffer)
++ return -ENOMEM;
++
++ src = (u32 __iomem *) (info->screen_base + p);
++
++ if (info->fbops->fb_sync)
++ info->fbops->fb_sync(info);
++
++ while (count) {
++ c = (count > PAGE_SIZE) ? PAGE_SIZE : count;
++ dst = buffer;
++ for (i = c >> 2; i--;) {
++ *dst = fb_readl(src++);
++ *dst =
++ (*dst & 0xff00ff00 >> 8) |
++ (*dst & 0x00ff00ff << 8);
++ dst++;
++ }
++ if (c & 3) {
++ u8 *dst8 = (u8 *) dst;
++ u8 __iomem *src8 = (u8 __iomem *) src;
++
++ for (i = c & 3; i--;) {
++ if (i & 1) {
++ *dst8++ = fb_readb(++src8);
++ } else {
++ *dst8++ = fb_readb(--src8);
++ src8 += 2;
++ }
++ }
++ src = (u32 __iomem *) src8;
++ }
++
++ if (copy_to_user(buf, buffer, c)) {
++ err = -EFAULT;
++ break;
++ }
++ *ppos += c;
++ buf += c;
++ cnt += c;
++ count -= c;
++ }
++
++ kfree(buffer);
++
++ return (err) ? err : cnt;
++}
++
++static ssize_t
++smtcfb_write(struct fb_info *info, const char __user *buf, size_t count,
++ loff_t *ppos)
++{
++ unsigned long p = *ppos;
++
++ u32 *buffer, *src;
++ u32 __iomem *dst;
++ int c, i, cnt = 0, err = 0;
++ unsigned long total_size;
++
++ if (!info || !info->screen_base)
++ return -ENODEV;
++
++ if (info->state != FBINFO_STATE_RUNNING)
++ return -EPERM;
++
++ total_size = info->screen_size;
++
++ if (total_size == 0)
++ total_size = info->fix.smem_len;
++
++ if (p > total_size)
++ return -EFBIG;
++
++ if (count > total_size) {
++ err = -EFBIG;
++ count = total_size;
++ }
++
++ if (count + p > total_size) {
++ if (!err)
++ err = -ENOSPC;
++
++ count = total_size - p;
++ }
++
++ buffer = kmalloc((count > PAGE_SIZE) ? PAGE_SIZE : count, GFP_KERNEL);
++ if (!buffer)
++ return -ENOMEM;
++
++ dst = (u32 __iomem *) (info->screen_base + p);
++
++ if (info->fbops->fb_sync)
++ info->fbops->fb_sync(info);
++
++ while (count) {
++ c = (count > PAGE_SIZE) ? PAGE_SIZE : count;
++ src = buffer;
++
++ if (copy_from_user(src, buf, c)) {
++ err = -EFAULT;
++ break;
++ }
++
++ for (i = c >> 2; i--;) {
++ fb_writel((*src & 0xff00ff00 >> 8) |
++ (*src & 0x00ff00ff << 8), dst++);
++ src++;
++ }
++ if (c & 3) {
++ u8 *src8 = (u8 *) src;
++ u8 __iomem *dst8 = (u8 __iomem *) dst;
++
++ for (i = c & 3; i--;) {
++ if (i & 1) {
++ fb_writeb(*src8++, ++dst8);
++ } else {
++ fb_writeb(*src8++, --dst8);
++ dst8 += 2;
++ }
++ }
++ dst = (u32 __iomem *) dst8;
++ }
++
++ *ppos += c;
++ buf += c;
++ cnt += c;
++ count -= c;
++ }
++
++ kfree(buffer);
++
++ return (cnt) ? cnt : err;
++}
++#endif /* ! __BIG_ENDIAN */
++
++static void sm7xx_set_timing(struct smtcfb_info *sfb)
++{
++ int i = 0, j = 0;
++ u32 m_nScreenStride;
++
++ dev_dbg(&sfb->pdev->dev,
++ "sfb->width=%d sfb->height=%d sfb->fb.var.bits_per_pixel=%d sfb->hz=%d\n",
++ sfb->width, sfb->height, sfb->fb.var.bits_per_pixel, sfb->hz);
++
++ for (j = 0; j < numVGAModes; j++) {
++ if (VGAMode[j].mmSizeX == sfb->width &&
++ VGAMode[j].mmSizeY == sfb->height &&
++ VGAMode[j].bpp == sfb->fb.var.bits_per_pixel &&
++ VGAMode[j].hz == sfb->hz) {
++
++ dev_dbg(&sfb->pdev->dev,
++ "VGAMode[j].mmSizeX=%d VGAMode[j].mmSizeY=%d VGAMode[j].bpp=%d VGAMode[j].hz=%d\n",
++ VGAMode[j].mmSizeX, VGAMode[j].mmSizeY,
++ VGAMode[j].bpp, VGAMode[j].hz);
++
++ dev_dbg(&sfb->pdev->dev, "VGAMode index=%d\n", j);
++
++ smtc_mmiowb(0x0, 0x3c6);
++
++ smtc_seqw(0, 0x1);
++
++ smtc_mmiowb(VGAMode[j].Init_MISC, 0x3c2);
++
++ /* init SEQ register SR00 - SR04 */
++ for (i = 0; i < SIZE_SR00_SR04; i++)
++ smtc_seqw(i, VGAMode[j].Init_SR00_SR04[i]);
++
++ /* init SEQ register SR10 - SR24 */
++ for (i = 0; i < SIZE_SR10_SR24; i++)
++ smtc_seqw(i + 0x10,
++ VGAMode[j].Init_SR10_SR24[i]);
++
++ /* init SEQ register SR30 - SR75 */
++ for (i = 0; i < SIZE_SR30_SR75; i++)
++ if ((i + 0x30) != 0x62 &&
++ (i + 0x30) != 0x6a &&
++ (i + 0x30) != 0x6b)
++ smtc_seqw(i + 0x30,
++ VGAMode[j].Init_SR30_SR75[i]);
++
++ /* init SEQ register SR80 - SR93 */
++ for (i = 0; i < SIZE_SR80_SR93; i++)
++ smtc_seqw(i + 0x80,
++ VGAMode[j].Init_SR80_SR93[i]);
++
++ /* init SEQ register SRA0 - SRAF */
++ for (i = 0; i < SIZE_SRA0_SRAF; i++)
++ smtc_seqw(i + 0xa0,
++ VGAMode[j].Init_SRA0_SRAF[i]);
++
++ /* init Graphic register GR00 - GR08 */
++ for (i = 0; i < SIZE_GR00_GR08; i++)
++ smtc_grphw(i, VGAMode[j].Init_GR00_GR08[i]);
++
++ /* init Attribute register AR00 - AR14 */
++ for (i = 0; i < SIZE_AR00_AR14; i++)
++ smtc_attrw(i, VGAMode[j].Init_AR00_AR14[i]);
++
++ /* init CRTC register CR00 - CR18 */
++ for (i = 0; i < SIZE_CR00_CR18; i++)
++ smtc_crtcw(i, VGAMode[j].Init_CR00_CR18[i]);
++
++ /* init CRTC register CR30 - CR4D */
++ for (i = 0; i < SIZE_CR30_CR4D; i++)
++ smtc_crtcw(i + 0x30,
++ VGAMode[j].Init_CR30_CR4D[i]);
++
++ /* init CRTC register CR90 - CRA7 */
++ for (i = 0; i < SIZE_CR90_CRA7; i++)
++ smtc_crtcw(i + 0x90,
++ VGAMode[j].Init_CR90_CRA7[i]);
++ }
++ }
++ smtc_mmiowb(0x67, 0x3c2);
++
++ /* set VPR registers */
++ writel(0x0, sfb->vp_regs + 0x0C);
++ writel(0x0, sfb->vp_regs + 0x40);
++
++ /* set data width */
++ m_nScreenStride =
++ (sfb->width * sfb->fb.var.bits_per_pixel) / 64;
++ switch (sfb->fb.var.bits_per_pixel) {
++ case 8:
++ writel(0x0, sfb->vp_regs + 0x0);
++ break;
++ case 16:
++ writel(0x00020000, sfb->vp_regs + 0x0);
++ break;
++ case 24:
++ writel(0x00040000, sfb->vp_regs + 0x0);
++ break;
++ case 32:
++ writel(0x00030000, sfb->vp_regs + 0x0);
++ break;
++ }
++ writel((u32) (((m_nScreenStride + 2) << 16) | m_nScreenStride),
++ sfb->vp_regs + 0x10);
++
++}
++
++static void smtc_set_timing(struct smtcfb_info *sfb)
++{
++ switch (sfb->chip_id) {
++ case 0x710:
++ case 0x712:
++ case 0x720:
++ sm7xx_set_timing(sfb);
++ break;
++ }
++}
++
++static void smtcfb_setmode(struct smtcfb_info *sfb)
++{
++ switch (sfb->fb.var.bits_per_pixel) {
++ case 32:
++ sfb->fb.fix.visual = FB_VISUAL_TRUECOLOR;
++ sfb->fb.fix.line_length = sfb->fb.var.xres * 4;
++ sfb->fb.var.red.length = 8;
++ sfb->fb.var.green.length = 8;
++ sfb->fb.var.blue.length = 8;
++ sfb->fb.var.red.offset = 16;
++ sfb->fb.var.green.offset = 8;
++ sfb->fb.var.blue.offset = 0;
++ break;
++ case 24:
++ sfb->fb.fix.visual = FB_VISUAL_TRUECOLOR;
++ sfb->fb.fix.line_length = sfb->fb.var.xres * 3;
++ sfb->fb.var.red.length = 8;
++ sfb->fb.var.green.length = 8;
++ sfb->fb.var.blue.length = 8;
++ sfb->fb.var.red.offset = 16;
++ sfb->fb.var.green.offset = 8;
++ sfb->fb.var.blue.offset = 0;
++ break;
++ case 8:
++ sfb->fb.fix.visual = FB_VISUAL_PSEUDOCOLOR;
++ sfb->fb.fix.line_length = sfb->fb.var.xres;
++ sfb->fb.var.red.length = 3;
++ sfb->fb.var.green.length = 3;
++ sfb->fb.var.blue.length = 2;
++ sfb->fb.var.red.offset = 5;
++ sfb->fb.var.green.offset = 2;
++ sfb->fb.var.blue.offset = 0;
++ break;
++ case 16:
++ default:
++ sfb->fb.fix.visual = FB_VISUAL_TRUECOLOR;
++ sfb->fb.fix.line_length = sfb->fb.var.xres * 2;
++ sfb->fb.var.red.length = 5;
++ sfb->fb.var.green.length = 6;
++ sfb->fb.var.blue.length = 5;
++ sfb->fb.var.red.offset = 11;
++ sfb->fb.var.green.offset = 5;
++ sfb->fb.var.blue.offset = 0;
++ break;
++ }
++
++ sfb->width = sfb->fb.var.xres;
++ sfb->height = sfb->fb.var.yres;
++ sfb->hz = 60;
++ smtc_set_timing(sfb);
++}
++
++static int smtc_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
++{
++ /* sanity checks */
++ if (var->xres_virtual < var->xres)
++ var->xres_virtual = var->xres;
++
++ if (var->yres_virtual < var->yres)
++ var->yres_virtual = var->yres;
++
++ /* set valid default bpp */
++ if ((var->bits_per_pixel != 8) && (var->bits_per_pixel != 16) &&
++ (var->bits_per_pixel != 24) && (var->bits_per_pixel != 32))
++ var->bits_per_pixel = 16;
++
++ return 0;
++}
++
++static int smtc_set_par(struct fb_info *info)
++{
++ smtcfb_setmode(info->par);
++
++ return 0;
++}
++
++static struct fb_ops smtcfb_ops = {
++ .owner = THIS_MODULE,
++ .fb_check_var = smtc_check_var,
++ .fb_set_par = smtc_set_par,
++ .fb_setcolreg = smtc_setcolreg,
++ .fb_blank = smtc_blank,
++ .fb_fillrect = cfb_fillrect,
++ .fb_imageblit = cfb_imageblit,
++ .fb_copyarea = cfb_copyarea,
++#ifdef __BIG_ENDIAN
++ .fb_read = smtcfb_read,
++ .fb_write = smtcfb_write,
++#endif
++};
++
++/*
++ * alloc struct smtcfb_info and assign default values
++ */
++static struct smtcfb_info *smtc_alloc_fb_info(struct pci_dev *pdev)
++{
++ struct smtcfb_info *sfb;
++
++ sfb = kzalloc(sizeof(*sfb), GFP_KERNEL);
++
++ if (!sfb)
++ return NULL;
++
++ sfb->pdev = pdev;
++
++ sfb->fb.flags = FBINFO_FLAG_DEFAULT;
++ sfb->fb.fbops = &smtcfb_ops;
++ sfb->fb.fix = smtcfb_fix;
++ sfb->fb.var = smtcfb_var;
++ sfb->fb.pseudo_palette = sfb->colreg;
++ sfb->fb.par = sfb;
++
++ return sfb;
++}
++
++/*
++ * free struct smtcfb_info
++ */
++static void smtc_free_fb_info(struct smtcfb_info *sfb)
++{
++ kfree(sfb);
++}
++
++/*
++ * Unmap in the memory mapped IO registers
++ */
++
++static void smtc_unmap_mmio(struct smtcfb_info *sfb)
++{
++ if (sfb && smtc_RegBaseAddress)
++ smtc_RegBaseAddress = NULL;
++}
++
++/*
++ * Map in the screen memory
++ */
++
++static int smtc_map_smem(struct smtcfb_info *sfb,
++ struct pci_dev *pdev, u_long smem_len)
++{
++
++ sfb->fb.fix.smem_start = pci_resource_start(pdev, 0);
++
++#ifdef __BIG_ENDIAN
++ if (sfb->fb.var.bits_per_pixel == 32)
++ sfb->fb.fix.smem_start += 0x800000;
++#endif
++
++ sfb->fb.fix.smem_len = smem_len;
++
++ sfb->fb.screen_base = sfb->lfb;
++
++ if (!sfb->fb.screen_base) {
++ dev_err(&pdev->dev,
++ "%s: unable to map screen memory\n", sfb->fb.fix.id);
++ return -ENOMEM;
++ }
++
++ return 0;
++}
++
++/*
++ * Unmap in the screen memory
++ *
++ */
++static void smtc_unmap_smem(struct smtcfb_info *sfb)
++{
++ if (sfb && sfb->fb.screen_base) {
++ iounmap(sfb->fb.screen_base);
++ sfb->fb.screen_base = NULL;
++ }
++}
++
++/*
++ * We need to wake up the device and make sure its in linear memory mode.
++ */
++static inline void sm7xx_init_hw(void)
++{
++ outb_p(0x18, 0x3c4);
++ outb_p(0x11, 0x3c5);
++}
++
++static int smtcfb_pci_probe(struct pci_dev *pdev,
++ const struct pci_device_id *ent)
++{
++ struct smtcfb_info *sfb;
++ u_long smem_size = 0x00800000; /* default 8MB */
++ int err;
++ unsigned long mmio_base;
++
++ dev_info(&pdev->dev, "Silicon Motion display driver.");
++
++ err = pci_enable_device(pdev); /* enable SMTC chip */
++ if (err)
++ return err;
++
++ sprintf(smtcfb_fix.id, "sm%Xfb", ent->device);
++
++ sfb = smtc_alloc_fb_info(pdev);
++
++ if (!sfb) {
++ err = -ENOMEM;
++ goto failed_free;
++ }
++
++ sfb->chip_id = ent->device;
++
++ pci_set_drvdata(pdev, sfb);
++
++ sm7xx_init_hw();
++
++ /* get mode parameter from smtc_scr_info */
++ if (smtc_scr_info.lfb_width != 0) {
++ sfb->fb.var.xres = smtc_scr_info.lfb_width;
++ sfb->fb.var.yres = smtc_scr_info.lfb_height;
++ sfb->fb.var.bits_per_pixel = smtc_scr_info.lfb_depth;
++ } else {
++ /* default resolution 1024x600 16bit mode */
++ sfb->fb.var.xres = SCREEN_X_RES;
++ sfb->fb.var.yres = SCREEN_Y_RES;
++ sfb->fb.var.bits_per_pixel = SCREEN_BPP;
++ }
++
++#ifdef __BIG_ENDIAN
++ if (sfb->fb.var.bits_per_pixel == 24)
++ sfb->fb.var.bits_per_pixel = (smtc_scr_info.lfb_depth = 32);
++#endif
++ /* Map address and memory detection */
++ mmio_base = pci_resource_start(pdev, 0);
++ pci_read_config_byte(pdev, PCI_REVISION_ID, &sfb->chip_rev_id);
++
++ switch (sfb->chip_id) {
++ case 0x710:
++ case 0x712:
++ sfb->fb.fix.mmio_start = mmio_base + 0x00400000;
++ sfb->fb.fix.mmio_len = 0x00400000;
++ smem_size = SM712_VIDEOMEMORYSIZE;
++#ifdef __BIG_ENDIAN
++ sfb->lfb = ioremap(mmio_base, 0x00c00000);
++#else
++ sfb->lfb = ioremap(mmio_base, 0x00800000);
++#endif
++ sfb->mmio = (smtc_RegBaseAddress =
++ sfb->lfb + 0x00700000);
++ sfb->dp_regs = sfb->lfb + 0x00408000;
++ sfb->vp_regs = sfb->lfb + 0x0040c000;
++#ifdef __BIG_ENDIAN
++ if (sfb->fb.var.bits_per_pixel == 32) {
++ sfb->lfb += 0x800000;
++ dev_info(&pdev->dev, "sfb->lfb=%p", sfb->lfb);
++ }
++#endif
++ if (!smtc_RegBaseAddress) {
++ dev_err(&pdev->dev,
++ "%s: unable to map memory mapped IO!",
++ sfb->fb.fix.id);
++ err = -ENOMEM;
++ goto failed_fb;
++ }
++
++ /* set MCLK = 14.31818 * (0x16 / 0x2) */
++ smtc_seqw(0x6a, 0x16);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x62, 0x3e);
++ /* enable PCI burst */
++ smtc_seqw(0x17, 0x20);
++ /* enable word swap */
++#ifdef __BIG_ENDIAN
++ if (sfb->fb.var.bits_per_pixel == 32)
++ smtc_seqw(0x17, 0x30);
++#endif
++ break;
++ case 0x720:
++ sfb->fb.fix.mmio_start = mmio_base;
++ sfb->fb.fix.mmio_len = 0x00200000;
++ smem_size = SM722_VIDEOMEMORYSIZE;
++ sfb->dp_regs = ioremap(mmio_base, 0x00a00000);
++ sfb->lfb = sfb->dp_regs + 0x00200000;
++ sfb->mmio = (smtc_RegBaseAddress =
++ sfb->dp_regs + 0x000c0000);
++ sfb->vp_regs = sfb->dp_regs + 0x800;
++
++ smtc_seqw(0x62, 0xff);
++ smtc_seqw(0x6a, 0x0d);
++ smtc_seqw(0x6b, 0x02);
++ break;
++ default:
++ dev_err(&pdev->dev,
++ "No valid Silicon Motion display chip was detected!");
++
++ goto failed_fb;
++ }
++
++ /* can support 32 bpp */
++ if (15 == sfb->fb.var.bits_per_pixel)
++ sfb->fb.var.bits_per_pixel = 16;
++
++ sfb->fb.var.xres_virtual = sfb->fb.var.xres;
++ sfb->fb.var.yres_virtual = sfb->fb.var.yres;
++ err = smtc_map_smem(sfb, pdev, smem_size);
++ if (err)
++ goto failed;
++
++ smtcfb_setmode(sfb);
++
++ err = register_framebuffer(&sfb->fb);
++ if (err < 0)
++ goto failed;
++
++ dev_info(&pdev->dev,
++ "Silicon Motion SM%X Rev%X primary display mode %dx%d-%d Init Complete.",
++ sfb->chip_id, sfb->chip_rev_id, sfb->fb.var.xres,
++ sfb->fb.var.yres, sfb->fb.var.bits_per_pixel);
++
++ return 0;
++
++failed:
++ dev_err(&pdev->dev, "Silicon Motion, Inc. primary display init fail.");
++
++ smtc_unmap_smem(sfb);
++ smtc_unmap_mmio(sfb);
++failed_fb:
++ smtc_free_fb_info(sfb);
++
++failed_free:
++ pci_disable_device(pdev);
++
++ return err;
++}
++
++/*
++ * 0x710 (LynxEM)
++ * 0x712 (LynxEM+)
++ * 0x720 (Lynx3DM, Lynx3DM+)
++ */
++static const struct pci_device_id smtcfb_pci_table[] = {
++ { PCI_DEVICE(0x126f, 0x710), },
++ { PCI_DEVICE(0x126f, 0x712), },
++ { PCI_DEVICE(0x126f, 0x720), },
++ {0,}
++};
++
++static void smtcfb_pci_remove(struct pci_dev *pdev)
++{
++ struct smtcfb_info *sfb;
++
++ sfb = pci_get_drvdata(pdev);
++ smtc_unmap_smem(sfb);
++ smtc_unmap_mmio(sfb);
++ unregister_framebuffer(&sfb->fb);
++ smtc_free_fb_info(sfb);
++}
++
++#ifdef CONFIG_PM
++static int smtcfb_pci_suspend(struct device *device)
++{
++ struct pci_dev *pdev = to_pci_dev(device);
++ struct smtcfb_info *sfb;
++
++ sfb = pci_get_drvdata(pdev);
++
++ /* set the hw in sleep mode use external clock and self memory refresh
++ * so that we can turn off internal PLLs later on
++ */
++ smtc_seqw(0x20, (smtc_seqr(0x20) | 0xc0));
++ smtc_seqw(0x69, (smtc_seqr(0x69) & 0xf7));
++
++ console_lock();
++ fb_set_suspend(&sfb->fb, 1);
++ console_unlock();
++
++ /* additionally turn off all function blocks including internal PLLs */
++ smtc_seqw(0x21, 0xff);
++
++ return 0;
++}
++
++static int smtcfb_pci_resume(struct device *device)
++{
++ struct pci_dev *pdev = to_pci_dev(device);
++ struct smtcfb_info *sfb;
++
++ sfb = pci_get_drvdata(pdev);
++
++ /* reinit hardware */
++ sm7xx_init_hw();
++ switch (sfb->chip_id) {
++ case 0x710:
++ case 0x712:
++ /* set MCLK = 14.31818 * (0x16 / 0x2) */
++ smtc_seqw(0x6a, 0x16);
++ smtc_seqw(0x6b, 0x02);
++ smtc_seqw(0x62, 0x3e);
++ /* enable PCI burst */
++ smtc_seqw(0x17, 0x20);
++#ifdef __BIG_ENDIAN
++ if (sfb->fb.var.bits_per_pixel == 32)
++ smtc_seqw(0x17, 0x30);
++#endif
++ break;
++ case 0x720:
++ smtc_seqw(0x62, 0xff);
++ smtc_seqw(0x6a, 0x0d);
++ smtc_seqw(0x6b, 0x02);
++ break;
++ }
++
++ smtc_seqw(0x34, (smtc_seqr(0x34) | 0xc0));
++ smtc_seqw(0x33, ((smtc_seqr(0x33) | 0x08) & 0xfb));
++
++ smtcfb_setmode(sfb);
++
++ console_lock();
++ fb_set_suspend(&sfb->fb, 0);
++ console_unlock();
++
++ return 0;
++}
++
++static SIMPLE_DEV_PM_OPS(sm7xx_pm_ops, smtcfb_pci_suspend, smtcfb_pci_resume);
++#define SM7XX_PM_OPS (&sm7xx_pm_ops)
++
++#else /* !CONFIG_PM */
++
++#define SM7XX_PM_OPS NULL
++
++#endif /* !CONFIG_PM */
++
++static struct pci_driver smtcfb_driver = {
++ .name = "smtcfb",
++ .id_table = smtcfb_pci_table,
++ .probe = smtcfb_pci_probe,
++ .remove = smtcfb_pci_remove,
++ .driver.pm = SM7XX_PM_OPS,
++};
++
++module_pci_driver(smtcfb_driver);
++
++MODULE_AUTHOR("Siliconmotion ");
++MODULE_DESCRIPTION("Framebuffer driver for SMI Graphic Cards");
++MODULE_LICENSE("GPL");
+diff -Nur linux-3.15.6.orig/drivers/staging/sm7xxfb/sm7xx.h linux-3.15.6/drivers/staging/sm7xxfb/sm7xx.h
+--- linux-3.15.6.orig/drivers/staging/sm7xxfb/sm7xx.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.15.6/drivers/staging/sm7xxfb/sm7xx.h 2014-07-22 17:59:31.846279635 +0200
+@@ -0,0 +1,779 @@
++/*
++ * Silicon Motion SM712 frame buffer device
++ *
++ * Copyright (C) 2006 Silicon Motion Technology Corp.
++ * Authors: Ge Wang, gewang@siliconmotion.com
++ * Boyod boyod.yang@siliconmotion.com.cn
++ *
++ * Copyright (C) 2009 Lemote, Inc.
++ * Author: Wu Zhangjin, wuzhangjin@gmail.com
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file COPYING in the main directory of this archive for
++ * more details.
++ */
++
++#define NR_PALETTE 256
++
++#define FB_ACCEL_SMI_LYNX 88
++
++#define SCREEN_X_RES 1024
++#define SCREEN_Y_RES 600
++#define SCREEN_BPP 16
++
++/*Assume SM712 graphics chip has 4MB VRAM */
++#define SM712_VIDEOMEMORYSIZE 0x00400000
++/*Assume SM722 graphics chip has 8MB VRAM */
++#define SM722_VIDEOMEMORYSIZE 0x00800000
++
++#define dac_reg (0x3c8)
++#define dac_val (0x3c9)
++
++extern void __iomem *smtc_RegBaseAddress;
++#define smtc_mmiowb(dat, reg) writeb(dat, smtc_RegBaseAddress + reg)
++#define smtc_mmioww(dat, reg) writew(dat, smtc_RegBaseAddress + reg)
++#define smtc_mmiowl(dat, reg) writel(dat, smtc_RegBaseAddress + reg)
++
++#define smtc_mmiorb(reg) readb(smtc_RegBaseAddress + reg)
++#define smtc_mmiorw(reg) readw(smtc_RegBaseAddress + reg)
++#define smtc_mmiorl(reg) readl(smtc_RegBaseAddress + reg)
++
++#define SIZE_SR00_SR04 (0x04 - 0x00 + 1)
++#define SIZE_SR10_SR24 (0x24 - 0x10 + 1)
++#define SIZE_SR30_SR75 (0x75 - 0x30 + 1)
++#define SIZE_SR80_SR93 (0x93 - 0x80 + 1)
++#define SIZE_SRA0_SRAF (0xAF - 0xA0 + 1)
++#define SIZE_GR00_GR08 (0x08 - 0x00 + 1)
++#define SIZE_AR00_AR14 (0x14 - 0x00 + 1)
++#define SIZE_CR00_CR18 (0x18 - 0x00 + 1)
++#define SIZE_CR30_CR4D (0x4D - 0x30 + 1)
++#define SIZE_CR90_CRA7 (0xA7 - 0x90 + 1)
++#define SIZE_VPR (0x6C + 1)
++#define SIZE_DPR (0x44 + 1)
++
++static inline void smtc_crtcw(int reg, int val)
++{
++ smtc_mmiowb(reg, 0x3d4);
++ smtc_mmiowb(val, 0x3d5);
++}
++
++static inline unsigned int smtc_crtcr(int reg)
++{
++ smtc_mmiowb(reg, 0x3d4);
++ return smtc_mmiorb(0x3d5);
++}
++
++static inline void smtc_grphw(int reg, int val)
++{
++ smtc_mmiowb(reg, 0x3ce);
++ smtc_mmiowb(val, 0x3cf);
++}
++
++static inline unsigned int smtc_grphr(int reg)
++{
++ smtc_mmiowb(reg, 0x3ce);
++ return smtc_mmiorb(0x3cf);
++}
++
++static inline void smtc_attrw(int reg, int val)
++{
++ smtc_mmiorb(0x3da);
++ smtc_mmiowb(reg, 0x3c0);
++ smtc_mmiorb(0x3c1);
++ smtc_mmiowb(val, 0x3c0);
++}
++
++static inline void smtc_seqw(int reg, int val)
++{
++ smtc_mmiowb(reg, 0x3c4);
++ smtc_mmiowb(val, 0x3c5);
++}
++
++static inline unsigned int smtc_seqr(int reg)
++{
++ smtc_mmiowb(reg, 0x3c4);
++ return smtc_mmiorb(0x3c5);
++}
++
++/* The next structure holds all information relevant for a specific video mode.
++ */
++
++struct ModeInit {
++ int mmSizeX;
++ int mmSizeY;
++ int bpp;
++ int hz;
++ unsigned char Init_MISC;
++ unsigned char Init_SR00_SR04[SIZE_SR00_SR04];
++ unsigned char Init_SR10_SR24[SIZE_SR10_SR24];
++ unsigned char Init_SR30_SR75[SIZE_SR30_SR75];
++ unsigned char Init_SR80_SR93[SIZE_SR80_SR93];
++ unsigned char Init_SRA0_SRAF[SIZE_SRA0_SRAF];
++ unsigned char Init_GR00_GR08[SIZE_GR00_GR08];
++ unsigned char Init_AR00_AR14[SIZE_AR00_AR14];
++ unsigned char Init_CR00_CR18[SIZE_CR00_CR18];
++ unsigned char Init_CR30_CR4D[SIZE_CR30_CR4D];
++ unsigned char Init_CR90_CRA7[SIZE_CR90_CRA7];
++};
++
++/**********************************************************************
++ SM712 Mode table.
++ **********************************************************************/
++struct ModeInit VGAMode[] = {
++ {
++ /* mode#0: 640 x 480 16Bpp 60Hz */
++ 640, 480, 16, 60,
++ /* Init_MISC */
++ 0xE3,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x00, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xFF, 0xBE, 0xEF, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x32, 0x03, 0xA0, 0x09, 0xC0, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x32, 0x32, 0x32,
++ 0x04, 0x24, 0x63, 0x4F, 0x52, 0x0B, 0xDF, 0xEA,
++ 0x04, 0x50, 0x19, 0x32, 0x32, 0x00, 0x00, 0x32,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x07, 0x82, 0x07, 0x04,
++ 0x00, 0x45, 0x30, 0x30, 0x40, 0x30,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x32,
++ 0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x32, 0x32,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
++ 0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xFF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0x5F, 0x4F, 0x4F, 0x00, 0x53, 0x1F, 0x0B, 0x3E,
++ 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xEA, 0x0C, 0xDF, 0x50, 0x40, 0xDF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xFF, 0xFD,
++ 0x5F, 0x4F, 0x00, 0x54, 0x00, 0x0B, 0xDF, 0x00,
++ 0xEA, 0x0C, 0x2E, 0x00, 0x4F, 0xDF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x56, 0xDD, 0x5E, 0xEA, 0x87, 0x44, 0x8F, 0x55,
++ 0x0A, 0x8F, 0x55, 0x0A, 0x00, 0x00, 0x18, 0x00,
++ 0x11, 0x10, 0x0B, 0x0A, 0x0A, 0x0A, 0x0A, 0x00,
++ },
++ },
++ {
++ /* mode#1: 640 x 480 24Bpp 60Hz */
++ 640, 480, 24, 60,
++ /* Init_MISC */
++ 0xE3,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x00, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xFF, 0xBE, 0xEF, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x32, 0x03, 0xA0, 0x09, 0xC0, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x32, 0x32, 0x32,
++ 0x04, 0x24, 0x63, 0x4F, 0x52, 0x0B, 0xDF, 0xEA,
++ 0x04, 0x50, 0x19, 0x32, 0x32, 0x00, 0x00, 0x32,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x07, 0x82, 0x07, 0x04,
++ 0x00, 0x45, 0x30, 0x30, 0x40, 0x30,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x32,
++ 0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x32, 0x32,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
++ 0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xFF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0x5F, 0x4F, 0x4F, 0x00, 0x53, 0x1F, 0x0B, 0x3E,
++ 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xEA, 0x0C, 0xDF, 0x50, 0x40, 0xDF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xFF, 0xFD,
++ 0x5F, 0x4F, 0x00, 0x54, 0x00, 0x0B, 0xDF, 0x00,
++ 0xEA, 0x0C, 0x2E, 0x00, 0x4F, 0xDF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x56, 0xDD, 0x5E, 0xEA, 0x87, 0x44, 0x8F, 0x55,
++ 0x0A, 0x8F, 0x55, 0x0A, 0x00, 0x00, 0x18, 0x00,
++ 0x11, 0x10, 0x0B, 0x0A, 0x0A, 0x0A, 0x0A, 0x00,
++ },
++ },
++ {
++ /* mode#0: 640 x 480 32Bpp 60Hz */
++ 640, 480, 32, 60,
++ /* Init_MISC */
++ 0xE3,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x00, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xFF, 0xBE, 0xEF, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x32, 0x03, 0xA0, 0x09, 0xC0, 0x32, 0x32, 0x32,
++ 0x32, 0x32, 0x32, 0x32, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x32, 0x32, 0x32,
++ 0x04, 0x24, 0x63, 0x4F, 0x52, 0x0B, 0xDF, 0xEA,
++ 0x04, 0x50, 0x19, 0x32, 0x32, 0x00, 0x00, 0x32,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x07, 0x82, 0x07, 0x04,
++ 0x00, 0x45, 0x30, 0x30, 0x40, 0x30,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x32,
++ 0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x32, 0x32,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
++ 0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xFF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0x5F, 0x4F, 0x4F, 0x00, 0x53, 0x1F, 0x0B, 0x3E,
++ 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xEA, 0x0C, 0xDF, 0x50, 0x40, 0xDF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xFF, 0xFD,
++ 0x5F, 0x4F, 0x00, 0x54, 0x00, 0x0B, 0xDF, 0x00,
++ 0xEA, 0x0C, 0x2E, 0x00, 0x4F, 0xDF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x56, 0xDD, 0x5E, 0xEA, 0x87, 0x44, 0x8F, 0x55,
++ 0x0A, 0x8F, 0x55, 0x0A, 0x00, 0x00, 0x18, 0x00,
++ 0x11, 0x10, 0x0B, 0x0A, 0x0A, 0x0A, 0x0A, 0x00,
++ },
++ },
++
++ { /* mode#2: 800 x 600 16Bpp 60Hz */
++ 800, 600, 16, 60,
++ /* Init_MISC */
++ 0x2B,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xFF, 0xBE, 0xEE, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x34, 0x03, 0x20, 0x09, 0xC0, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x38, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x24, 0x24, 0x24,
++ 0x04, 0x48, 0x83, 0x63, 0x68, 0x72, 0x57, 0x58,
++ 0x04, 0x55, 0x59, 0x24, 0x24, 0x00, 0x00, 0x24,
++ 0x01, 0x80, 0x7A, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x1C, 0x85, 0x35, 0x13,
++ 0x02, 0x45, 0x30, 0x35, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0x00, 0x00, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x24,
++ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0x24,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
++ 0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0x7F, 0x63, 0x63, 0x00, 0x68, 0x18, 0x72, 0xF0,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x58, 0x0C, 0x57, 0x64, 0x40, 0x57, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x03, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xBF, 0xFD,
++ 0x7F, 0x63, 0x00, 0x69, 0x18, 0x72, 0x57, 0x00,
++ 0x58, 0x0C, 0xE0, 0x20, 0x63, 0x57,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x56, 0x4B, 0x5E, 0x55, 0x86, 0x9D, 0x8E, 0xAA,
++ 0xDB, 0x2A, 0xDF, 0x33, 0x00, 0x00, 0x18, 0x00,
++ 0x20, 0x1F, 0x1A, 0x19, 0x0F, 0x0F, 0x0F, 0x00,
++ },
++ },
++ { /* mode#3: 800 x 600 24Bpp 60Hz */
++ 800, 600, 24, 60,
++ 0x2B,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xFF, 0xBE, 0xEE, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x36, 0x03, 0x20, 0x09, 0xC0, 0x36, 0x36, 0x36,
++ 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x36, 0x36, 0x36,
++ 0x04, 0x48, 0x83, 0x63, 0x68, 0x72, 0x57, 0x58,
++ 0x04, 0x55, 0x59, 0x36, 0x36, 0x00, 0x00, 0x36,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x1C, 0x85, 0x35, 0x13,
++ 0x02, 0x45, 0x30, 0x30, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x36,
++ 0xF7, 0x00, 0x00, 0x00, 0xEF, 0xFF, 0x36, 0x36,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
++ 0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0x7F, 0x63, 0x63, 0x00, 0x68, 0x18, 0x72, 0xF0,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x58, 0x0C, 0x57, 0x64, 0x40, 0x57, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x03, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xBF, 0xFD,
++ 0x7F, 0x63, 0x00, 0x69, 0x18, 0x72, 0x57, 0x00,
++ 0x58, 0x0C, 0xE0, 0x20, 0x63, 0x57,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x56, 0x4B, 0x5E, 0x55, 0x86, 0x9D, 0x8E, 0xAA,
++ 0xDB, 0x2A, 0xDF, 0x33, 0x00, 0x00, 0x18, 0x00,
++ 0x20, 0x1F, 0x1A, 0x19, 0x0F, 0x0F, 0x0F, 0x00,
++ },
++ },
++ { /* mode#7: 800 x 600 32Bpp 60Hz */
++ 800, 600, 32, 60,
++ /* Init_MISC */
++ 0x2B,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xFF, 0xBE, 0xEE, 0xFF, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x34, 0x03, 0x20, 0x09, 0xC0, 0x24, 0x24, 0x24,
++ 0x24, 0x24, 0x24, 0x24, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x38, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x24, 0x24, 0x24,
++ 0x04, 0x48, 0x83, 0x63, 0x68, 0x72, 0x57, 0x58,
++ 0x04, 0x55, 0x59, 0x24, 0x24, 0x00, 0x00, 0x24,
++ 0x01, 0x80, 0x7A, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x1C, 0x85, 0x35, 0x13,
++ 0x02, 0x45, 0x30, 0x35, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0x00, 0x00, 0x00, 0x6F, 0x7F, 0x7F, 0xFF, 0x24,
++ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x24, 0x24,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xED, 0xED, 0xED,
++ 0x7B, 0xFF, 0xFF, 0xFF, 0xBF, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0x7F, 0x63, 0x63, 0x00, 0x68, 0x18, 0x72, 0xF0,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x58, 0x0C, 0x57, 0x64, 0x40, 0x57, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x03, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xE7, 0xBF, 0xFD,
++ 0x7F, 0x63, 0x00, 0x69, 0x18, 0x72, 0x57, 0x00,
++ 0x58, 0x0C, 0xE0, 0x20, 0x63, 0x57,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x56, 0x4B, 0x5E, 0x55, 0x86, 0x9D, 0x8E, 0xAA,
++ 0xDB, 0x2A, 0xDF, 0x33, 0x00, 0x00, 0x18, 0x00,
++ 0x20, 0x1F, 0x1A, 0x19, 0x0F, 0x0F, 0x0F, 0x00,
++ },
++ },
++ /* We use 1024x768 table to light 1024x600 panel for lemote */
++ { /* mode#4: 1024 x 600 16Bpp 60Hz */
++ 1024, 600, 16, 60,
++ /* Init_MISC */
++ 0xEB,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x00, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xC8, 0x40, 0x14, 0x60, 0x00, 0x0A, 0x17, 0x20,
++ 0x51, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x00, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x22, 0x03, 0x24, 0x09, 0xC0, 0x22, 0x22, 0x22,
++ 0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x22, 0x22, 0x22,
++ 0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
++ 0x00, 0x60, 0x59, 0x22, 0x22, 0x00, 0x00, 0x22,
++ 0x01, 0x80, 0x7A, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x16, 0x02, 0x0D, 0x82, 0x09, 0x02,
++ 0x04, 0x45, 0x3F, 0x30, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
++ 0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
++ 0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
++ 0xA3, 0x7F, 0x00, 0x82, 0x0b, 0x6f, 0x57, 0x00,
++ 0x5c, 0x0f, 0xE0, 0xe0, 0x7F, 0x57,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
++ 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
++ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
++ },
++ },
++ { /* mode#5: 1024 x 768 24Bpp 60Hz */
++ 1024, 768, 24, 60,
++ /* Init_MISC */
++ 0xEB,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x30, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
++ 0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
++ 0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
++ 0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x3B, 0x0D, 0x09, 0x02,
++ 0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
++ 0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
++ 0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
++ 0xA3, 0x7F, 0x00, 0x86, 0x15, 0x24, 0xFF, 0x00,
++ 0x01, 0x07, 0xE5, 0x20, 0x7F, 0xFF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
++ 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
++ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
++ },
++ },
++ { /* mode#4: 1024 x 768 32Bpp 60Hz */
++ 1024, 768, 32, 60,
++ /* Init_MISC */
++ 0xEB,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x32, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
++ 0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
++ 0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
++ 0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x3B, 0x0D, 0x09, 0x02,
++ 0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
++ 0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
++ 0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
++ 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
++ 0xA3, 0x7F, 0x00, 0x86, 0x15, 0x24, 0xFF, 0x00,
++ 0x01, 0x07, 0xE5, 0x20, 0x7F, 0xFF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
++ 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
++ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
++ },
++ },
++ { /* mode#6: 320 x 240 16Bpp 60Hz */
++ 320, 240, 16, 60,
++ /* Init_MISC */
++ 0xEB,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x32, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
++ 0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
++ 0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
++ 0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x08, 0x43, 0x08, 0x43,
++ 0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
++ 0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
++ 0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
++ 0x00, 0x00, 0x30, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
++ 0x2E, 0x27, 0x00, 0x2b, 0x0c, 0x0F, 0xEF, 0x00,
++ 0xFe, 0x0f, 0x01, 0xC0, 0x27, 0xEF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
++ 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
++ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
++ },
++ },
++
++ { /* mode#8: 320 x 240 32Bpp 60Hz */
++ 320, 240, 32, 60,
++ /* Init_MISC */
++ 0xEB,
++ { /* Init_SR0_SR4 */
++ 0x03, 0x01, 0x0F, 0x03, 0x0E,
++ },
++ { /* Init_SR10_SR24 */
++ 0xF3, 0xB6, 0xC0, 0xDD, 0x00, 0x0E, 0x17, 0x2C,
++ 0x99, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xC4, 0x32, 0x02, 0x01, 0x01,
++ },
++ { /* Init_SR30_SR75 */
++ 0x38, 0x03, 0x20, 0x09, 0xC0, 0x3A, 0x3A, 0x3A,
++ 0x3A, 0x3A, 0x3A, 0x3A, 0x00, 0x00, 0x03, 0xFF,
++ 0x00, 0xFC, 0x00, 0x00, 0x20, 0x18, 0x00, 0xFC,
++ 0x20, 0x0C, 0x44, 0x20, 0x00, 0x00, 0x00, 0x3A,
++ 0x06, 0x68, 0xA7, 0x7F, 0x83, 0x24, 0xFF, 0x03,
++ 0x00, 0x60, 0x59, 0x3A, 0x3A, 0x00, 0x00, 0x3A,
++ 0x01, 0x80, 0x7E, 0x1A, 0x1A, 0x00, 0x00, 0x00,
++ 0x50, 0x03, 0x74, 0x14, 0x08, 0x43, 0x08, 0x43,
++ 0x04, 0x45, 0x30, 0x30, 0x40, 0x20,
++ },
++ { /* Init_SR80_SR93 */
++ 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x3A,
++ 0xF7, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3A, 0x3A,
++ 0x00, 0x00, 0x00, 0x00,
++ },
++ { /* Init_SRA0_SRAF */
++ 0x00, 0xFB, 0x9F, 0x01, 0x00, 0xED, 0xED, 0xED,
++ 0x7B, 0xFB, 0xFF, 0xFF, 0x97, 0xEF, 0xBF, 0xDF,
++ },
++ { /* Init_GR00_GR08 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F,
++ 0xFF,
++ },
++ { /* Init_AR00_AR14 */
++ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
++ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
++ 0x41, 0x00, 0x0F, 0x00, 0x00,
++ },
++ { /* Init_CR00_CR18 */
++ 0xA3, 0x7F, 0x7F, 0x00, 0x85, 0x16, 0x24, 0xF5,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x09, 0xFF, 0x80, 0x40, 0xFF, 0x00, 0xE3,
++ 0xFF,
++ },
++ { /* Init_CR30_CR4D */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x20,
++ 0x00, 0x00, 0x30, 0x40, 0x00, 0xFF, 0xBF, 0xFF,
++ 0x2E, 0x27, 0x00, 0x2b, 0x0c, 0x0F, 0xEF, 0x00,
++ 0xFe, 0x0f, 0x01, 0xC0, 0x27, 0xEF,
++ },
++ { /* Init_CR90_CRA7 */
++ 0x55, 0xD9, 0x5D, 0xE1, 0x86, 0x1B, 0x8E, 0x26,
++ 0xDA, 0x8D, 0xDE, 0x94, 0x00, 0x00, 0x18, 0x00,
++ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x15, 0x03,
++ },
++ },
++};
++
++#define numVGAModes ARRAY_SIZE(VGAMode)
+diff -Nur linux-3.15.6.orig/drivers/staging/sm7xxfb/TODO linux-3.15.6/drivers/staging/sm7xxfb/TODO
+--- linux-3.15.6.orig/drivers/staging/sm7xxfb/TODO 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.15.6/drivers/staging/sm7xxfb/TODO 2014-07-22 17:59:31.846279635 +0200
+@@ -0,0 +1,9 @@
++TODO:
++- Dual head support
++- 2D acceleration support
++- use kernel coding style
++- refine the code and remove unused code
++- move it to drivers/video/sm7xxfb.c
++
++Please send any patches to Greg Kroah-Hartman <greg@kroah.com> and
++Teddy Wang <teddy.wang@siliconmotion.com.cn>.